void use(const int *); void foo(void) { int i; use(&i); }
At least for languages where 'const' is actually enforced, we should warn for this. For languages where the 'const' can be cast away and 'i' can be initialized by 'use' the situation is less clear (although personally I think we should warn anyway). This is one part of PR10138. "the question whether an argument is actually used or not is secondary, the fact that we pass an uninitialized variable to which only read access is possible is definitely worth a warning." http://gcc.gnu.org/bugzilla/show_bug.cgi?id=10138#c8 -- Summary: warn for read-only uninitialized variables passed as arguments Product: gcc Version: 4.3.0 Status: UNCONFIRMED Severity: enhancement Priority: P3 Component: middle-end AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: manu at gcc dot gnu dot org OtherBugsDependingO 10138 nThis: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33086