diff options
author | Douglas Gregor <dgregor@apple.com> | 2009-01-14 18:02:48 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2009-01-14 18:02:48 +0000 |
commit | cba844dae66f4dbc26ea8b988df1bfb4be1ee320 (patch) | |
tree | 2bcaabc5c2777646399fd4ab01d415c8dd0f8396 | |
parent | 0971e775294095c41aa076d7ed499850302561e7 (diff) | |
download | bcm5719-llvm-cba844dae66f4dbc26ea8b988df1bfb4be1ee320.tar.gz bcm5719-llvm-cba844dae66f4dbc26ea8b988df1bfb4be1ee320.zip |
Test explicit constructor
llvm-svn: 62237
-rw-r--r-- | clang/test/SemaCXX/converting-constructor.cpp | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/clang/test/SemaCXX/converting-constructor.cpp b/clang/test/SemaCXX/converting-constructor.cpp index b99a134328e..0ab8d931377 100644 --- a/clang/test/SemaCXX/converting-constructor.cpp +++ b/clang/test/SemaCXX/converting-constructor.cpp @@ -21,3 +21,20 @@ void g(short s, Y y, Z z) { f(z); // expected-error{{incompatible type passing 'class Z', expected 'class X'}} } + +class FromShort { +public: + FromShort(short s); +}; + +class FromShortExplicitly { +public: + explicit FromShortExplicitly(short s); +}; + +void explicit_constructor(short s) { + FromShort fs1(s); + FromShort fs2 = s; + FromShortExplicitly fse1(s); + FromShortExplicitly fse2 = s; // expected-error{{error: cannot initialize 'fse2' with an lvalue of type 'short'}} +} |