Consider this code:

int a;
__attribute__((noreturn(a))) void foo();

Clang does not emit any warning or errors on this code; gcc would report wrong 
number of arguments for the attribute specified.
The attached patch fixed this by emit a "takes no argument" error for clang.

Alternatively parser can be updated so the first identifier immediately 
following the attribute name could be treated as argument, instead of 
"parameter" (what is the difference between them?). This would require a lot 
more work to update the parser and the AttributeList so I am not sure if that 
is the right thing to do for now. Please review the patch thanks

Cheers
~Michael

Attachment: attributes.fix.patch
Description: attributes.fix.patch

_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to