Semantic checking of constructor declarations and classification of default/copy constructors
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58538 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/test/SemaCXX/constructor.cpp b/test/SemaCXX/constructor.cpp
index 4f9dd2b..1aedb29 100644
--- a/test/SemaCXX/constructor.cpp
+++ b/test/SemaCXX/constructor.cpp
@@ -1,11 +1,17 @@
// RUN: clang -fsyntax-only -verify %s
+typedef int INT;
+
class Foo {
Foo();
(Foo)(float) { }
- explicit Foo(int);
+ explicit Foo(int); // expected-error{{previous declaration is here}}
Foo(const Foo&);
+ ((Foo))(INT); // expected-error{{cannot be redeclared}}
+
+ Foo(Foo foo, int i = 17, int j = 42); // expected-error {{copy constructor must pass its first argument by reference}}
+
static Foo(short, short); // expected-error{{constructor cannot be declared 'static'}}
virtual Foo(double); // expected-error{{constructor cannot be declared 'virtual'}}
Foo(long) const; // expected-error{{'const' qualifier is not allowed on a constructor}}