[pseudo] Eliminate an ambiguity for the empty member declaration.
We happened to introduce a `member-declaration := ;` rule when inlining the `member-declaration := decl-specifier-seq_opt member-declarator-list_opt ;`. And with the `member-declaration := empty-declaration` rule, we had two parses of `;`. This patch is to restrict the grammar to eliminate the `member-declaration := ;` rule. Differential Revision: https://reviews.llvm.org/D131724
This commit is contained in:
parent
435feefbdd
commit
a1a1a78ac8
@ -557,7 +557,8 @@ class-key := STRUCT
|
||||
class-key := UNION
|
||||
member-specification := member-declaration member-specification_opt
|
||||
member-specification := access-specifier : member-specification_opt
|
||||
member-declaration := decl-specifier-seq_opt member-declarator-list_opt ;
|
||||
member-declaration := decl-specifier-seq member-declarator-list_opt ;
|
||||
member-declaration := member-declarator-list ;
|
||||
member-declaration := function-definition
|
||||
member-declaration := using-declaration
|
||||
member-declaration := using-enum-declaration
|
||||
|
@ -0,0 +1,7 @@
|
||||
// RUN: clang-pseudo -grammar=cxx -source=%s --print-forest --forest-abbrev=false | FileCheck %s
|
||||
class A {
|
||||
;
|
||||
// CHECK-NOT: member-declaration := ;
|
||||
// CHECK: member-declaration := empty-declaration
|
||||
// CHECK-NOT: member-declaration := ;
|
||||
};
|
Loading…
x
Reference in New Issue
Block a user