1 | // RUN: %clang_cc1 -verify %s -pedantic-errors |
2 | // RUN: %clang_cc1 -verify %s -pedantic-errors -DINLINE |
3 | // RUN: %clang_cc1 -verify %s -pedantic-errors -DSTATIC |
4 | // RUN: %clang_cc1 -verify %s -pedantic-errors -std=c++11 -DCONSTEXPR |
5 | // RUN: %clang_cc1 -verify %s -std=c++11 -DDELETED |
6 | |
7 | #if INLINE |
8 | inline // expected-error {{'main' is not allowed to be declared inline}} |
9 | #elif STATIC |
10 | static // expected-error {{'main' is not allowed to be declared static}} |
11 | #elif CONSTEXPR |
12 | constexpr // expected-error {{'main' is not allowed to be declared constexpr}} |
13 | #endif |
14 | int main(int argc, char **argv) |
15 | #if DELETED |
16 | = delete; // expected-error {{'main' is not allowed to be deleted}} |
17 | #else |
18 | { |
19 | int (*pmain)(int, char**) = &main; // expected-error {{ISO C++ does not allow 'main' to be used by a program}} |
20 | |
21 | if (argc) |
22 | main(0, 0); // expected-error {{ISO C++ does not allow 'main' to be used by a program}} |
23 | } |
24 | #endif |
25 | |