On 8/29/16, Jason Merrill <ja...@redhat.com> wrote: > On Mon, Aug 29, 2016 at 10:28 AM, Marek Polacek <pola...@redhat.com> wrote: >> On Mon, Aug 29, 2016 at 09:20:53AM -0400, Eric Gallager wrote: >>> I tried this patch on my fork of gdb-binutils and got a few warnings >>> from it. Would it be possible to have the caret point to the argument >>> mentioned, instead of the function name? And also print the option >>> name? E.g., instead of the current: >>> >>> or32-opc.c: In function ‘or32_print_register’: >>> or32-opc.c:956:3: warning: passing argument 1 to restrict qualified >>> parameter aliases with argument 3 >>> sprintf (disassembled, "%sr%d", disassembled, regnum); >>> ^~~~~~~ >>> >>> could it look like: >>> >>> or32-opc.c: In function ‘or32_print_register’: >>> or32-opc.c:956:3: warning: passing argument 1 to restrict qualified >>> parameter aliases with argument 3 [-Wrestrict] >>> sprintf (disassembled, "%sr%d", disassembled, regnum); >>> ^~~~~~~~~~~~ >>> >>> instead? >> >> I didn't try to implement it, but I think this should be fairly easy to >> achieve in the C FE, because c_parser_postfix_expression_after_primary >> has arg_loc, which is a vector of parameter locations. > > The C++ FE doesn't have this currently, but it could be added without > too much trouble: in cp_parser_parenthesized_expression_list, extract > the locations from the cp_expr return value of > cp_parser_assignment_expression, and then pass the locations back up > to cp_parser_postfix_expression. > > Jason >
On the topic of how to get this warning working with various frontends, is there any reason why the Objective C frontend doesn't handle -Wrestrict? Currently when trying to use it, it just says: cc1obj: warning: command line option '-Wrestrict' is valid for C/C++ but not for ObjC