forked from OSchip/llvm-project
[SyntaxTree] Ignore implicit leaf `CXXConstructExpr`
Differential Revision: https://reviews.llvm.org/D86700
This commit is contained in:
parent
2325d6b42f
commit
46f4439dc9
|
@ -1132,6 +1132,14 @@ public:
|
|||
return true;
|
||||
}
|
||||
|
||||
bool WalkUpFromCXXConstructExpr(CXXConstructExpr *S) {
|
||||
// Ignore the implicit calls to default constructors.
|
||||
if ((S->getNumArgs() == 0 || isa<CXXDefaultArgExpr>(S->getArg(0))) &&
|
||||
S->getParenOrBraceRange().isInvalid())
|
||||
return true;
|
||||
return RecursiveASTVisitor::WalkUpFromCXXConstructExpr(S);
|
||||
}
|
||||
|
||||
bool TraverseCXXOperatorCallExpr(CXXOperatorCallExpr *S) {
|
||||
// To construct a syntax tree of the same shape for calls to built-in and
|
||||
// user-defined operators, ignore the `DeclRefExpr` that refers to the
|
||||
|
|
|
@ -548,9 +548,6 @@ namespace n {
|
|||
struct S { };
|
||||
}
|
||||
void test() {
|
||||
// FIXME: Remove the `UnknownExpression` wrapping `s1` and `s2`. This
|
||||
// `UnknownExpression` comes from a leaf `CXXConstructExpr` in the
|
||||
// ClangAST. We need to ignore leaf implicit nodes.
|
||||
[[::n::S s1]];
|
||||
[[n::S s2]];
|
||||
}
|
||||
|
@ -564,8 +561,7 @@ SimpleDeclaration
|
|||
| `-'::' ListDelimiter
|
||||
|-'S'
|
||||
`-SimpleDeclarator Declarator
|
||||
`-UnknownExpression
|
||||
`-'s1'
|
||||
`-'s1'
|
||||
)txt",
|
||||
R"txt(
|
||||
SimpleDeclaration
|
||||
|
@ -575,8 +571,7 @@ SimpleDeclaration
|
|||
| `-'::' ListDelimiter
|
||||
|-'S'
|
||||
`-SimpleDeclarator Declarator
|
||||
`-UnknownExpression
|
||||
`-'s2'
|
||||
`-'s2'
|
||||
)txt"}));
|
||||
}
|
||||
|
||||
|
@ -608,8 +603,7 @@ SimpleDeclaration
|
|||
| `-'::' ListDelimiter
|
||||
|-'S'
|
||||
`-SimpleDeclarator Declarator
|
||||
`-UnknownExpression
|
||||
`-'s1'
|
||||
`-'s1'
|
||||
)txt",
|
||||
R"txt(
|
||||
SimpleDeclaration
|
||||
|
@ -623,8 +617,7 @@ SimpleDeclaration
|
|||
| `-'::' ListDelimiter
|
||||
|-'S'
|
||||
`-SimpleDeclarator Declarator
|
||||
`-UnknownExpression
|
||||
`-'s2'
|
||||
`-'s2'
|
||||
)txt"}));
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue