diff options
author | dim <dim@FreeBSD.org> | 2013-04-08 18:45:10 +0000 |
---|---|---|
committer | dim <dim@FreeBSD.org> | 2013-04-08 18:45:10 +0000 |
commit | c72c57c9e9b69944e3e009cd5e209634839581d3 (patch) | |
tree | 4fc2f184c499d106f29a386c452b49e5197bf63d /test/CXX/basic/basic.start/basic.start.main/p2.cpp | |
parent | 5b20025c30d23d521e12c1f33ec8fa6b821952cd (diff) | |
download | FreeBSD-src-c72c57c9e9b69944e3e009cd5e209634839581d3.zip FreeBSD-src-c72c57c9e9b69944e3e009cd5e209634839581d3.tar.gz |
Vendor import of clang trunk r178860:
http://llvm.org/svn/llvm-project/cfe/trunk@178860
Diffstat (limited to 'test/CXX/basic/basic.start/basic.start.main/p2.cpp')
-rw-r--r-- | test/CXX/basic/basic.start/basic.start.main/p2.cpp | 101 |
1 files changed, 101 insertions, 0 deletions
diff --git a/test/CXX/basic/basic.start/basic.start.main/p2.cpp b/test/CXX/basic/basic.start/basic.start.main/p2.cpp new file mode 100644 index 0000000..a5386f1 --- /dev/null +++ b/test/CXX/basic/basic.start/basic.start.main/p2.cpp @@ -0,0 +1,101 @@ +// RUN: %clang_cc1 -fsyntax-only -verify %s -DTEST1 +// RUN: %clang_cc1 -fsyntax-only -verify %s -DTEST2 +// RUN: %clang_cc1 -fsyntax-only -verify %s -DTEST3 +// RUN: %clang_cc1 -fsyntax-only -verify %s -DTEST4 +// RUN: %clang_cc1 -fsyntax-only -verify %s -DTEST5 +// RUN: %clang_cc1 -fsyntax-only -verify %s -DTEST6 +// RUN: %clang_cc1 -fsyntax-only -verify %s -DTEST7 +// RUN: %clang_cc1 -fsyntax-only -verify %s -DTEST8 + +// RUN: cp %s %t +// RUN: %clang_cc1 -x c++ %s -std=c++11 -fsyntax-only -verify -DTEST9 +// RUN: not %clang_cc1 -x c++ %t -std=c++11 -fixit -DTEST9 +// RUN: %clang_cc1 -x c++ %t -std=c++11 -fsyntax-only -DTEST9 + +// RUN: %clang_cc1 -fsyntax-only -verify %s -DTEST10 +// RUN: %clang_cc1 -fsyntax-only -verify %s -DTEST11 +// RUN: %clang_cc1 -fsyntax-only -verify %s -DTEST12 + +#if TEST1 + +// expected-no-diagnostics +typedef int Int; +typedef char Char; +typedef Char* Carp; + +Int main(Int argc, Carp argv[]) { +} + +#elif TEST2 + +// expected-no-diagnostics +typedef int Int; +typedef char Char; +typedef Char* Carp; + +Int main(Int argc, Carp argv[], Char *env[]) { +} + +#elif TEST3 + +// expected-no-diagnostics +int main() { +} + +#elif TEST4 + +static int main() { // expected-error {{'main' is not allowed to be declared static}} +} + +#elif TEST5 + +inline int main() { // expected-error {{'main' is not allowed to be declared inline}} +} + +#elif TEST6 + +void // expected-error {{'main' must return 'int'}} +main( // expected-error {{first parameter of 'main' (argument count) must be of type 'int'}} + float a +) { +} + +#elif TEST7 + +// expected-no-diagnostics +int main(int argc, const char* const* argv) { +} + +#elif TEST8 + +template<typename T> +int main() { } // expected-error{{'main' cannot be a template}} + +#elif TEST9 + +constexpr int main() { } // expected-error{{'main' is not allowed to be declared constexpr}} + +#elif TEST10 + +// PR15100 +// expected-no-diagnostics +typedef char charT; +int main(int, const charT**) {} + +#elif TEST11 + +// expected-no-diagnostics +typedef char charT; +int main(int, charT* const *) {} + +#elif TEST12 + +// expected-no-diagnostics +typedef char charT; +int main(int, const charT* const *) {} + +#else + +#error Unknown test mode + +#endif |