blob: 39a90b858fd21df7f7660e53db114151f79c4395 [file] [log] [blame]
Sean Hunt7880bc32011-05-13 01:01:05 +00001// Without PCH
Richard Smith762bb9d2011-10-13 22:29:44 +00002// RUN: %clang_cc1 -std=c++11 -fsyntax-only -verify -include %s %s
Sean Hunt7880bc32011-05-13 01:01:05 +00003// With PCH
Richard Smith762bb9d2011-10-13 22:29:44 +00004// RUN: %clang_cc1 -x c++-header -std=c++11 -emit-pch -o %t %s
5// RUN: %clang_cc1 -std=c++11 -fsyntax-only -verify -include-pch %t %s
Sean Hunt7880bc32011-05-13 01:01:05 +00006
7#ifndef PASS1
8#define PASS1
9
10struct foo {
11 foo() = default;
Jordan Rose78541c42012-07-11 19:58:23 +000012 void bar() = delete;
Sean Hunt7880bc32011-05-13 01:01:05 +000013};
14
Richard Smithdfefb842012-02-25 07:33:38 +000015struct baz {
Jordan Rose78541c42012-07-11 19:58:23 +000016 ~baz() = delete;
Richard Smithdfefb842012-02-25 07:33:38 +000017};
18
19class quux {
Jordan Rose78541c42012-07-11 19:58:23 +000020 ~quux() = default;
Richard Smithdfefb842012-02-25 07:33:38 +000021};
22
Sean Hunt7880bc32011-05-13 01:01:05 +000023#else
24
Sean Hunt82713172011-05-25 23:16:36 +000025foo::foo() { } // expected-error{{definition of explicitly defaulted default constructor}}
Sean Hunt7880bc32011-05-13 01:01:05 +000026foo f;
27void fn() {
Jordan Rose78541c42012-07-11 19:58:23 +000028 f.bar(); // expected-error{{deleted function}} expected-note@12{{deleted here}}
Sean Hunt7880bc32011-05-13 01:01:05 +000029}
30
Jordan Rose78541c42012-07-11 19:58:23 +000031baz bz; // expected-error{{deleted function}} expected-note@16{{deleted here}}
32quux qx; // expected-error{{private destructor}} expected-note@20{{private here}}
Richard Smithdfefb842012-02-25 07:33:38 +000033
Sean Hunt7880bc32011-05-13 01:01:05 +000034#endif