| // RUN: %clang_cc1 -fsyntax-only -verify -Wduplicate-decl-specifier %s |
| // RUN: %clang_cc1 -fsyntax-only -verify -Wc++-compat %s |
| // RUN: %clang_cc1 -fsyntax-only -verify -Wno-duplicate-decl-specifier -Wc++-compat %s |
| // RUN: %clang_cc1 -fsyntax-only -verify=good -Wc++-compat -Wno-duplicate-decl-specifier %s |
| // RUN: %clang_cc1 -fsyntax-only -verify=good -Wno-duplicate-decl-specifier %s |
| // RUN: %clang_cc1 -fsyntax-only -verify -x c++ %s |
| // good-no-diagnostics |
| |
| // Note: we treat this as a warning in C++, so you get the same diagnostics in |
| // either language mode. However, GCC diagnoses this as an error, so the |
| // compatibility warning has value. |
| const const int i = 12; // expected-warning {{duplicate 'const' declaration specifier}} |
| |
| __attribute__((address_space(1))) |
| __attribute__((address_space(1))) // expected-warning {{multiple identical address spaces specified for type}} |
| int j = 12; |
| |
| volatile const volatile const int x = 1; // expected-warning {{duplicate 'const' declaration specifier}} \ |
| expected-warning {{duplicate 'volatile' declaration specifier}} |