summaryrefslogtreecommitdiffstats
path: root/clang/test/SemaCXX/ambig-user-defined-conversions.cpp
diff options
context:
space:
mode:
authorRichard Smith <richard-llvm@metafoo.co.uk>2016-10-06 23:12:58 +0000
committerRichard Smith <richard-llvm@metafoo.co.uk>2016-10-06 23:12:58 +0000
commite15a370084f376be480072c06ebd94bbeac6663c (patch)
tree5a79c7727030f2d2a616bf9e0f3b25d62ca2fe10 /clang/test/SemaCXX/ambig-user-defined-conversions.cpp
parent9675de5ba826f4af74a6704fc0fe2c83262d5e4a (diff)
downloadbcm5719-llvm-e15a370084f376be480072c06ebd94bbeac6663c.tar.gz
bcm5719-llvm-e15a370084f376be480072c06ebd94bbeac6663c.zip
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. llvm-svn: 283508
Diffstat (limited to 'clang/test/SemaCXX/ambig-user-defined-conversions.cpp')
-rw-r--r--clang/test/SemaCXX/ambig-user-defined-conversions.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/clang/test/SemaCXX/ambig-user-defined-conversions.cpp b/clang/test/SemaCXX/ambig-user-defined-conversions.cpp
index 1a3c102f034..276c1b07b5d 100644
--- a/clang/test/SemaCXX/ambig-user-defined-conversions.cpp
+++ b/clang/test/SemaCXX/ambig-user-defined-conversions.cpp
@@ -65,3 +65,8 @@ namespace rdar8876150 {
bool f(D d) { return !d; } // expected-error{{ambiguous conversion from derived class 'rdar8876150::D' to base class 'rdar8876150::A':}}
}
+
+namespace assignment {
+ struct A { operator short(); operator bool(); }; // expected-note 2{{candidate}}
+ void f(int n, A a) { n = a; } // expected-error{{ambiguous}}
+}
OpenPOWER on IntegriCloud