diff options
Diffstat (limited to 'clang/lib/Analysis/ReachableCode.cpp')
-rw-r--r-- | clang/lib/Analysis/ReachableCode.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/clang/lib/Analysis/ReachableCode.cpp b/clang/lib/Analysis/ReachableCode.cpp index f159642db2f..b772145456e 100644 --- a/clang/lib/Analysis/ReachableCode.cpp +++ b/clang/lib/Analysis/ReachableCode.cpp @@ -376,6 +376,11 @@ static bool isConfigurationValue(const Stmt *S) { S = Ex->IgnoreParenCasts(); switch (S->getStmtClass()) { + case Stmt::DeclRefExprClass: { + const DeclRefExpr *DR = cast<DeclRefExpr>(S); + const EnumConstantDecl *ED = dyn_cast<EnumConstantDecl>(DR->getDecl()); + return ED ? isConfigurationValue(ED->getInitExpr()) : false; + } case Stmt::IntegerLiteralClass: return isExpandedFromConfigurationMacro(S); case Stmt::UnaryExprOrTypeTraitExprClass: |