summaryrefslogtreecommitdiff
path: root/clang-tools-extra/pseudo
diff options
context:
space:
mode:
authorSam McCall <sam.mccall@gmail.com>2022-07-27 09:08:34 +0200
committerSam McCall <sam.mccall@gmail.com>2022-07-27 09:08:34 +0200
commitafc4958f5ad004309bb982c24147bc3d562add74 (patch)
treee6e30f528203f6a5dec2db57941ad829d9443ff6 /clang-tools-extra/pseudo
parent89f284bc238b4091482cbc4fa38bc5f7246b81e4 (diff)
downloadllvm-afc4958f5ad004309bb982c24147bc3d562add74.tar.gz
[pseudo] Add dangling-else guard to missing if-statement variants
Diffstat (limited to 'clang-tools-extra/pseudo')
-rw-r--r--clang-tools-extra/pseudo/lib/cxx/CXX.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/clang-tools-extra/pseudo/lib/cxx/CXX.cpp b/clang-tools-extra/pseudo/lib/cxx/CXX.cpp
index fe9eb930469e..a0a252c50b98 100644
--- a/clang-tools-extra/pseudo/lib/cxx/CXX.cpp
+++ b/clang-tools-extra/pseudo/lib/cxx/CXX.cpp
@@ -300,12 +300,17 @@ llvm::DenseMap<ExtensionID, RuleGuard> buildGuards() {
{rule::contextual_zero::NUMERIC_CONSTANT,
TOKEN_GUARD(numeric_constant, Tok.text() == "0")},
- // FIXME: the init-statement variants are missing?
{rule::selection_statement::IF__L_PAREN__condition__R_PAREN__statement,
guardNextTokenNotElse},
{rule::selection_statement::
+ IF__L_PAREN__init_statement__condition__R_PAREN__statement,
+ guardNextTokenNotElse},
+ {rule::selection_statement::
IF__CONSTEXPR__L_PAREN__condition__R_PAREN__statement,
guardNextTokenNotElse},
+ {rule::selection_statement::
+ IF__CONSTEXPR__L_PAREN__init_statement__condition__R_PAREN__statement,
+ guardNextTokenNotElse},
// The grammar distinguishes (only) user-defined vs plain string literals,
// where the clang lexer distinguishes (only) encoding types.