PR25890: Fix incoherent error handling in PerformImplicitConversion and
CheckSingleAssignmentConstraints. These no longer produce ExprError() when they have not emitted an error, and reliably inform the caller when they *have* emitted an error. This fixes some serious issues where we would fail to emit any diagnostic for invalid code and then attempt to emit code for an invalid AST, and conversely some issues where we would emit two diagnostics for the same problem. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@283508 91177308-0d34-0410-b5e6-96231b3b80d8
Showing
- include/clang/Sema/Sema.h 17 additions, 9 deletionsinclude/clang/Sema/Sema.h
- lib/Sema/SemaExpr.cpp 9 additions, 7 deletionslib/Sema/SemaExpr.cpp
- lib/Sema/SemaExprCXX.cpp 4 additions, 0 deletionslib/Sema/SemaExprCXX.cpp
- lib/Sema/SemaOverload.cpp 2 additions, 1 deletionlib/Sema/SemaOverload.cpp
- lib/Sema/SemaPseudoObject.cpp 2 additions, 1 deletionlib/Sema/SemaPseudoObject.cpp
- lib/Sema/SemaStmt.cpp 2 additions, 0 deletionslib/Sema/SemaStmt.cpp
- test/CXX/drs/dr0xx.cpp 2 additions, 3 deletionstest/CXX/drs/dr0xx.cpp
- test/CXX/except/except.spec/p5-pointers.cpp 6 additions, 6 deletionstest/CXX/except/except.spec/p5-pointers.cpp
- test/SemaCXX/ambig-user-defined-conversions.cpp 5 additions, 0 deletionstest/SemaCXX/ambig-user-defined-conversions.cpp
- test/SemaCXX/derived-to-base-ambig.cpp 2 additions, 2 deletionstest/SemaCXX/derived-to-base-ambig.cpp
Loading
Please register or sign in to comment