Implement -Wmisleading-indentation
gcc/ChangeLog: * doc/invoke.texi (Warning Options): Add -Wmisleading-indentation. (-Wmisleading-indentation): New option. * Makefile.in (C_COMMON_OBJS): Add c-family/c-indentation.o. gcc/c-family/ChangeLog: * c-common.h (warn_for_misleading_indentation): New prototype. * c-indentation.c: New file. * c.opt (Wmisleading-indentation): New option. gcc/c/ChangeLog: * c-parser.c (c_parser_if_body): Add param "if_loc", use it to add a call to warn_for_misleading_indentation. (c_parser_else_body): Likewise, adding param "else_loc". (c_parser_if_statement): Check for misleading indentation. (c_parser_while_statement): Likewise. (c_parser_for_statement): Likewise. gcc/cp/ChangeLog: * parser.c (cp_parser_selection_statement): Add location and guard_kind arguments to calls to cp_parser_implicitly_scoped_statement. (cp_parser_iteration_statement): Likewise for calls to cp_parser_already_scoped_statement. (cp_parser_implicitly_scoped_statement): Add "guard_loc" and "guard_kind" params; use them to warn for misleading indentation. (cp_parser_already_scoped_statement): Likewise. gcc/testsuite/ChangeLog: * c-c++-common/Wmisleading-indentation.c: New testcase. * c-c++-common/Wmisleading-indentation-2.c: New testcase. * c-c++-common/Wmisleading-indentation-2.md: New file. libcpp/ChangeLog: * directives.c (do_line): Set seen_line_directive on line_table. (do_linemarker): Likewise. * include/line-map.h (struct line_maps): Add new field "seen_line_directive". From-SVN: r223098
Showing
- gcc/ChangeLog 6 additions, 0 deletionsgcc/ChangeLog
- gcc/Makefile.in 2 additions, 2 deletionsgcc/Makefile.in
- gcc/c-family/ChangeLog 6 additions, 0 deletionsgcc/c-family/ChangeLog
- gcc/c-family/c-common.h 8 additions, 0 deletionsgcc/c-family/c-common.h
- gcc/c-family/c-indentation.c 384 additions, 0 deletionsgcc/c-family/c-indentation.c
- gcc/c-family/c.opt 4 additions, 0 deletionsgcc/c-family/c.opt
- gcc/c/ChangeLog 9 additions, 0 deletionsgcc/c/ChangeLog
- gcc/c/c-parser.c 43 additions, 8 deletionsgcc/c/c-parser.c
- gcc/cp/ChangeLog 12 additions, 0 deletionsgcc/cp/ChangeLog
- gcc/cp/parser.c 39 additions, 12 deletionsgcc/cp/parser.c
- gcc/doc/invoke.texi 41 additions, 1 deletiongcc/doc/invoke.texi
- gcc/testsuite/ChangeLog 6 additions, 0 deletionsgcc/testsuite/ChangeLog
- gcc/testsuite/c-c++-common/Wmisleading-indentation-2.c 56 additions, 0 deletionsgcc/testsuite/c-c++-common/Wmisleading-indentation-2.c
- gcc/testsuite/c-c++-common/Wmisleading-indentation-2.md 46 additions, 0 deletionsgcc/testsuite/c-c++-common/Wmisleading-indentation-2.md
- gcc/testsuite/c-c++-common/Wmisleading-indentation.c 431 additions, 0 deletionsgcc/testsuite/c-c++-common/Wmisleading-indentation.c
- libcpp/ChangeLog 7 additions, 0 deletionslibcpp/ChangeLog
- libcpp/directives.c 4 additions, 2 deletionslibcpp/directives.c
- libcpp/include/line-map.h 3 additions, 0 deletionslibcpp/include/line-map.h
Loading
Please register or sign in to comment