diff options
| author | Douglas Gregor <dgregor@apple.com> | 2010-06-29 23:25:20 +0000 | 
|---|---|---|
| committer | Douglas Gregor <dgregor@apple.com> | 2010-06-29 23:25:20 +0000 | 
| commit | 5823da3ab0fc48547ac0289d5ba9cbf9f7524d36 (patch) | |
| tree | 1aa1373080249d74d05e8b7080e41341c4796a04 /clang/lib/Sema/SemaOverload.cpp | |
| parent | f4ea725d38cc52d34512a11bc0d40a3e9bfffaec (diff) | |
| download | bcm5719-llvm-5823da3ab0fc48547ac0289d5ba9cbf9f7524d36.tar.gz bcm5719-llvm-5823da3ab0fc48547ac0289d5ba9cbf9f7524d36.zip | |
Re-improve recovery when the condition of a switch statement does not
have integral or enumeration type, so that we still check the contents
of the switch body. My previous patch made this worse; now we're back
to where we were previously.
llvm-svn: 107223
Diffstat (limited to 'clang/lib/Sema/SemaOverload.cpp')
| -rw-r--r-- | clang/lib/Sema/SemaOverload.cpp | 8 | 
1 files changed, 3 insertions, 5 deletions
| diff --git a/clang/lib/Sema/SemaOverload.cpp b/clang/lib/Sema/SemaOverload.cpp index af28d46b5fe..86724f9a92f 100644 --- a/clang/lib/Sema/SemaOverload.cpp +++ b/clang/lib/Sema/SemaOverload.cpp @@ -3106,7 +3106,7 @@ Sema::ConvertToIntegralOrEnumerationType(SourceLocation Loc, ExprArg FromE,    if (!RecordTy || !getLangOptions().CPlusPlus) {      Diag(Loc, NotIntDiag)        << T << From->getSourceRange(); -    return ExprError(); +    return move(FromE);    }    // We must have a complete class type. @@ -3190,14 +3190,12 @@ Sema::ConvertToIntegralOrEnumerationType(SourceLocation Loc, ExprArg FromE,        Diag(Conv->getLocation(), AmbigNote)          << ConvTy->isEnumeralType() << ConvTy;      } -    return ExprError(); +    return move(FromE);    } -  if (!From->getType()->isIntegralOrEnumerationType()) { +  if (!From->getType()->isIntegralOrEnumerationType())      Diag(Loc, NotIntDiag)        << From->getType() << From->getSourceRange(); -    return ExprError(); -  }    return move(FromE);  } | 

