Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

That only applies to warnings in conjunction with optimisations though, just turning optimisations on (as shown in the example slide) won't necessarily pick up uninitialised variables. For example, if I compile the example given in the slides with -O, -O1, -O2 or -O3 with gcc, I don't get an error/warning, but I do if I use -Wall.

Also, you can use -Wuninitialized without optimisations and it picks up the problem, at least in my version of gcc (4.5.2).



The example in the slide uses `-Wall -O`, and `-Wall` includes `-Wuninitialized`.

Recent versions of GCC have a revamped syntax tree analyzer, which was needed for the new tree-vectorize features. It does more work from the outset these days, so I'm not surprised if it throws the warning earlier.


Indeed, you need the warning and the optimization to make it work.

That note came from the man page for i686-apple-darwin11-llvm-gcc-4.2, FWIW.


Ah, I'm using a newer version of gcc, which seems to catch the warning regardless of the optimisation level (including none at all). The text of the man page also seems to be different.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: