diff options
Diffstat (limited to 'libcxxabi/src/cxa_demangle.cpp')
-rw-r--r-- | libcxxabi/src/cxa_demangle.cpp | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/libcxxabi/src/cxa_demangle.cpp b/libcxxabi/src/cxa_demangle.cpp index 0bfbffa092e..c97df8aa02c 100644 --- a/libcxxabi/src/cxa_demangle.cpp +++ b/libcxxabi/src/cxa_demangle.cpp @@ -2589,10 +2589,15 @@ Node *Db::parseExpr() { if (First[1] == 'u') { First += 2; Node *Cond = parseExpr(); + if (Cond == nullptr) + return nullptr; Node *LHS = parseExpr(); + if (LHS == nullptr) + return nullptr; Node *RHS = parseExpr(); - if (Cond && LHS && RHS) - return make<ConditionalExpr>(Cond, LHS, RHS); + if (RHS == nullptr) + return nullptr; + return make<ConditionalExpr>(Cond, LHS, RHS); } return nullptr; case 'r': |