2012/2/9 Vasiliy Korchagin <[email protected]>: > On 08.02.2012 23:47, David Blaikie wrote: > > On Wed, Feb 8, 2012 at 11:25 AM, Chris Lattner <[email protected]> wrote: > > On Feb 8, 2012, at 5:31 AM, Vasiliy Korchagin wrote: > > 07.02.2012 07:27, Eli Friedman пишет: > > On Mon, Feb 6, 2012 at 6:51 PM, Xin Tong<[email protected]> wrote: > > Is there any way to stop this ? > > /home/socrates/llvm/llvm-3.0.src/benchmarks/powerstone/crc/crc.c:67:1: > error: 'main' must return 'int' > void main() > ^ > 1 error generated. > > You mean besides fixing the source of your benchmark so it's valid C? > Not at the moment... patches welcome. > > -Eli > > We suggest patch for allowing main() function to have non-integer return > type. This feature can be enabled with "-allow-non-int-main" option. In this > case warning about incorrect main() return type will be printed instead of > error. > > In patch also included test case for this feature. > > Vasiliy Korchagin, > > Hi Vasiliy, > > Please send clang patches to cfe-dev. > > or even cfe-commits (further instructions are here: > http://clang.llvm.org/get_involved.html) > > [I've dropped llvm-dev and added cfe-commits to this email] > > My first thought based on your description alone would be that we > should support this, if at all, probably in the way that GCC already > does - surfacing non-int returning main as a warning in C (under > -Wmain) and error in C++ (as it is already) if that's practical. > > & looking at the patch itself: Your change is even more permissive > than GCC (when you use the flag you've added) allowing C++ to have > void returning main. I don't see any need to be so accepting. > > (& the change you've made in Sema::ActOnFinishFunctionBody scares me a > bit - what does that do when you have int returning main but you turn > this flag on? not allow implicit return 0? that seems problematic) > > - David > > David, thanks for your reply. > > Seems like my response missed mailing list, so I'm sending it again. > I changed the patch and now "-allow-non-int-main" option allows to print > a warning in C and error in C++ in case of non-integer main. I also > fixed implicit returning 0.
Sorry, I just didn't get around to replying - I still think this should be under the -Wmain flag, probably - like it is in GCC. But I could be wrong - hopefully someone else pipes up with an opinion too. (it's possible it should be stronger - perhaps a separate warning that defaults to error - but I don't think it should be an entirely new/separate flag) - David _______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
