wiem, że jeśli wykonamy GCC jako takie:Jak zachowuje się GCC, jeśli przekazano sprzeczne flagi kompilatora?
gcc -O3 -O2 foo.c
GCC użyje ostatnią flagę optymalizacji przekazana (w tym przypadku O2
). Czy to prawda w przypadku wszystkich flag? Na przykład, jeśli wykonam GCC tak:
gcc -mno-sse -msse bar.c
będzie wspierać SSE ponieważ to był ostatni flagi przekazywane lub doprowadziłoby to do niezdefiniowanej zachowanie? Moje początkowe eksperymenty zdają się wskazywać, że będzie to wspierać SSE, ale nie jestem pewien, czy jest to prawdą we wszystkich przypadkach.
Warto zauważyć, że gcc nadal zachowuje się w "późniejszych opcjach na override linii przejętych wcześniej", nawet w twoim przykładzie. Po prostu to * także * daje ostrzeżenie. – codetaku