[PATCH] D129048: Rewording the "static_assert" to static assertion
Aaron Ballman via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Wed Jul 13 05:19:40 PDT 2022
aaron.ballman added a comment.
I think this is getting pretty close! I did have some style guideline changes, and at least one test addition I'd like to see though. Also, it looks like precommit CI caught a test that still needs to be updated:
FAIL: Clang :: SemaCXX/cxx98-compat.cpp (16448 of 68726)
******************** TEST 'Clang :: SemaCXX/cxx98-compat.cpp' FAILED ********************
Script:
--
: 'RUN: at line 1'; /var/lib/buildkite-agent/builds/llvm-project/build/bin/clang -cc1 -internal-isystem /var/lib/buildkite-agent/builds/llvm-project/build/lib/clang/15.0.0/include -nostdsysteminc -fsyntax-only -std=c++11 -Wc++98-compat -verify /var/lib/buildkite-agent/builds/llvm-project/clang/test/SemaCXX/cxx98-compat.cpp
: 'RUN: at line 2'; /var/lib/buildkite-agent/builds/llvm-project/build/bin/clang -cc1 -internal-isystem /var/lib/buildkite-agent/builds/llvm-project/build/lib/clang/15.0.0/include -nostdsysteminc -fsyntax-only -std=c++14 -Wc++98-compat -verify /var/lib/buildkite-agent/builds/llvm-project/clang/test/SemaCXX/cxx98-compat.cpp -DCXX14COMPAT
: 'RUN: at line 3'; /var/lib/buildkite-agent/builds/llvm-project/build/bin/clang -cc1 -internal-isystem /var/lib/buildkite-agent/builds/llvm-project/build/lib/clang/15.0.0/include -nostdsysteminc -fsyntax-only -std=c++17 -Wc++98-compat -verify /var/lib/buildkite-agent/builds/llvm-project/clang/test/SemaCXX/cxx98-compat.cpp -DCXX14COMPAT -DCXX17COMPAT
--
Exit Code: 1
Command Output (stderr):
--
error: 'warning' diagnostics expected but not seen:
File /var/lib/buildkite-agent/builds/llvm-project/clang/test/SemaCXX/cxx98-compat.cpp Line 155: static_assert declarations are incompatible with C++98
error: 'warning' diagnostics seen but not expected:
File /var/lib/buildkite-agent/builds/llvm-project/clang/test/SemaCXX/cxx98-compat.cpp Line 155: 'static_assert' declarations are incompatible with C++98
2 errors generated.
--
********************
================
Comment at: clang/include/clang/Basic/DiagnosticParseKinds.td:285
def err_expected_semi_after_static_assert : Error<
- "expected ';' after static_assert">;
+ "expected ';' after '%0'">;
def err_expected_semi_for : Error<"expected ';' in 'for' statement specifier">;
----------------
I think we're missing some test coverage, because I would have expected at least one test to fail because of this change. I think you should add a test to `clang/test/SemaCXX/static-assert.cpp` like this:
```
static_assert(1, "")
_Static_assert(1, "")
```
where the semi colons are missing, and add the correct `expected-error` lines to each so that we have coverage for your changes.
================
Comment at: clang/include/clang/Parse/Parser.h:1046
/// to the semicolon, consumes that extra token.
- bool ExpectAndConsumeSemi(unsigned DiagID);
+ bool ExpectAndConsumeSemi(unsigned DiagID , StringRef tokenUsed = "");
----------------
================
Comment at: clang/lib/Parse/ParseDeclCXX.cpp:930
+ // saving the token used for static assertion
+ Token savedTok = Tok;
+
----------------
================
Comment at: clang/lib/Parse/ParseDeclCXX.cpp:994-998
+ // saving the token used the syntax of the static assertion
+ const char * tokenUsed = savedTok.getName();
+
DeclEnd = Tok.getLocation();
+ ExpectAndConsumeSemi(diag::err_expected_semi_after_static_assert , tokenUsed); //passing the token used to the error message
----------------
You should also make sure this fits in the usual 80-col limit and if it doesn't, clang-format the patch (https://clang.llvm.org/docs/ClangFormat.html#script-for-patch-reformatting).
================
Comment at: clang/lib/Parse/Parser.cpp:156-175
+bool Parser::ExpectAndConsumeSemi(unsigned DiagID, StringRef tokenUsed) {
if (TryConsumeToken(tok::semi))
return false;
if (Tok.is(tok::code_completion)) {
handleUnexpectedCodeCompletionToken();
return false;
----------------
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D129048/new/
https://reviews.llvm.org/D129048
More information about the cfe-commits
mailing list