So che se si esegue GCC come tale:Come si comporta GCC se ha superato flag di compilazione in conflitto?
gcc -O3 -O2 foo.c
GCC utilizzerà l'ultima flag di ottimizzazione passato (in questo caso O2
). Tuttavia, è vero per tutte le bandiere? Per esempio, se eseguo GCC in questo modo:
gcc -mno-sse -msse bar.c
Sarà supportare SSE dato che era l'ultimo flag passato, o se tale risultato in un comportamento indefinito? La mia sperimentazione iniziale sembra indicare che supporterà l'SSE, ma non sono sicuro che questo sia vero per tutti i casi.
Forse vale la pena notare che gcc si comporta ancora nelle "opzioni successive sulla linea ignora quelle passate in precedenza", anche nel tuo esempio. È solo che * anche * ti dà un avvertimento. – codetaku