Skip to content

Commit

Permalink
[pseudo] Fix the incorrect parameters-and-qualifiers rule.
Browse files Browse the repository at this point in the history
The parenthese body should be parameter-declaration-clause, rather
than parameter-declaration-list.

Reviewed By: sammccall

Differential Revision: https://reviews.llvm.org/D125479
  • Loading branch information
hokein committed Jun 7, 2022
1 parent e4ed7ca commit cf88150
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 2 deletions.
2 changes: 1 addition & 1 deletion clang-tools-extra/pseudo/lib/cxx.bnf
Expand Up @@ -409,7 +409,7 @@ noptr-declarator := declarator-id
noptr-declarator := noptr-declarator parameters-and-qualifiers
noptr-declarator := noptr-declarator [ constant-expression_opt ]
noptr-declarator := ( ptr-declarator )
parameters-and-qualifiers := ( parameter-declaration-list_opt ) cv-qualifier-seq_opt ref-qualifier_opt noexcept-specifier_opt
parameters-and-qualifiers := ( parameter-declaration-clause_opt ) cv-qualifier-seq_opt ref-qualifier_opt noexcept-specifier_opt
trailing-return-type := -> type-id
ptr-operator := * cv-qualifier-seq_opt
ptr-operator := &
Expand Down
14 changes: 14 additions & 0 deletions clang-tools-extra/pseudo/test/cxx/parameter-decl-clause.cpp
@@ -0,0 +1,14 @@
// RUN: clang-pseudo -grammar=%cxx-bnf-file -source=%s --print-forest | FileCheck %s
void foo2(int, ...);
// CHECK: translation-unit~simple-declaration := decl-specifier-seq init-declarator-list ;
// CHECK-NEXT: ├─decl-specifier-seq~VOID :=
// CHECK-NEXT: ├─init-declarator-list~noptr-declarator := noptr-declarator parameters-and-qualifiers
// CHECK-NEXT: │ ├─noptr-declarator~IDENTIFIER :=
// CHECK-NEXT: │ └─parameters-and-qualifiers := ( parameter-declaration-clause )
// CHECK-NEXT: │ ├─( :=
// CHECK-NEXT: │ ├─parameter-declaration-clause := parameter-declaration-list , ...
// CHECK-NEXT: │ │ ├─parameter-declaration-list~INT :=
// CHECK-NEXT: │ │ ├─, :=
// CHECK-NEXT: │ │ └─... :=
// CHECK-NEXT: │ └─) :=
// CHECK-NEXT: └─; :=
2 changes: 1 addition & 1 deletion clang-tools-extra/pseudo/test/cxx/unsized-array.cpp
@@ -1,6 +1,6 @@
// RUN: clang-pseudo -grammar=%cxx-bnf-file -source=%s --print-forest | FileCheck %s
void s(int[]);
// CHECK: parameter-declaration-list~parameter-declaration := decl-specifier-seq abstract-declarator
// CHECK: parameter-declaration-clause~parameter-declaration := decl-specifier-seq abstract-declarator
// CHECK-NEXT: ├─decl-specifier-seq~INT := tok[3]
// CHECK-NEXT: └─abstract-declarator~noptr-abstract-declarator := [ ]
// CHECK-NEXT: ├─[ := tok[4]
Expand Down

0 comments on commit cf88150

Please sign in to comment.