aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-vectorizer.h
diff options
context:
space:
mode:
authorMarek Polacek <polacek@redhat.com>2024-02-12 19:36:16 -0500
committerMarek Polacek <polacek@redhat.com>2024-05-15 13:23:08 -0400
commit0b3eac4b54a52bf206b88743d1e987badc97cff4 (patch)
tree24554e7cde20e07745d3810ceae5ded21d9009ce /gcc/tree-vectorizer.h
parent6ad7ca1bb905736c0f57688e93e9e77cbc71a325 (diff)
downloadgcc-0b3eac4b54a52bf206b88743d1e987badc97cff4.zip
gcc-0b3eac4b54a52bf206b88743d1e987badc97cff4.tar.gz
gcc-0b3eac4b54a52bf206b88743d1e987badc97cff4.tar.bz2
c++: DR 569, DR 1693: fun with semicolons [PR113760]
Prompted by c++/113760, I started looking into a bogus "extra ;" warning in C++11. It quickly turned out that if I want to fix this for good, the fix will not be so small. This patch touches on DR 569, an extra ; at namespace scope should be allowed since C++11: struct S { }; ; // pedwarn in C++98 It also touches on DR 1693, which allows superfluous semicolons in class definitions since C++11: struct S { int a; ; // pedwarn in C++98 }; Note that a single semicolon is valid after a member function definition: struct S { void foo () {}; // only warns with -Wextra-semi }; There's a new function maybe_warn_extra_semi to handle all of the above in a single place. So now they all get a fix-it hint. -Wextra-semi turns on all "extra ;" diagnostics. Currently, options like -Wc++11-compat or -Wc++11-extensions are not considered. DR 1693 PR c++/113760 DR 569 gcc/c-family/ChangeLog: * c.opt (Wextra-semi): Initialize to -1. gcc/cp/ChangeLog: * parser.cc (extra_semi_kind): New. (maybe_warn_extra_semi): New. (cp_parser_declaration): Call maybe_warn_extra_semi. (cp_parser_member_declaration): Likewise. gcc/ChangeLog: * doc/invoke.texi: Update -Wextra-semi documentation. gcc/testsuite/ChangeLog: * g++.dg/diagnostic/semicolon1.C: New test. * g++.dg/diagnostic/semicolon10.C: New test. * g++.dg/diagnostic/semicolon11.C: New test. * g++.dg/diagnostic/semicolon12.C: New test. * g++.dg/diagnostic/semicolon13.C: New test. * g++.dg/diagnostic/semicolon14.C: New test. * g++.dg/diagnostic/semicolon15.C: New test. * g++.dg/diagnostic/semicolon16.C: New test. * g++.dg/diagnostic/semicolon17.C: New test. * g++.dg/diagnostic/semicolon2.C: New test. * g++.dg/diagnostic/semicolon3.C: New test. * g++.dg/diagnostic/semicolon4.C: New test. * g++.dg/diagnostic/semicolon5.C: New test. * g++.dg/diagnostic/semicolon6.C: New test. * g++.dg/diagnostic/semicolon7.C: New test. * g++.dg/diagnostic/semicolon8.C: New test. * g++.dg/diagnostic/semicolon9.C: New test.
Diffstat (limited to 'gcc/tree-vectorizer.h')
0 files changed, 0 insertions, 0 deletions