mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-24 12:56:06 +00:00

These proposals make the same changes to both C++ and C and remove a restriction on standard attributes appearing multiple times in the same attribute list. We could warn on the duplicate attributes, but do not. This is for consistency as we do not warn on attributes duplicated within the attribute specifier sequence. If we want to warn on duplicated standard attributes, we should do so both for both situations: [[foo, foo]] and [[foo]][[foo]].
20 lines
1.6 KiB
C++
20 lines
1.6 KiB
C++
// RUN: %clang_cc1 -std=c++2a %s -verify -triple x86_64-linux-gnu
|
|
// RUN: %clang_cc1 -std=c++2a %s -verify=unsupported -triple x86_64-windows
|
|
|
|
[[no_unique_address]] int a; // expected-error {{only applies to non-bit-field non-static data members}} unsupported-warning {{unknown}}
|
|
[[no_unique_address]] void f(); // expected-error {{only applies to non-bit-field non-static data members}} unsupported-warning {{unknown}}
|
|
struct [[no_unique_address]] S { // expected-error {{only applies to non-bit-field non-static data members}} unsupported-warning {{unknown}}
|
|
[[no_unique_address]] int a; // unsupported-warning {{unknown}}
|
|
[[no_unique_address]] void f(); // expected-error {{only applies to non-bit-field non-static data members}} unsupported-warning {{unknown}}
|
|
[[no_unique_address]] static int sa;// expected-error {{only applies to non-bit-field non-static data members}} unsupported-warning {{unknown}}
|
|
[[no_unique_address]] static void sf(); // expected-error {{only applies to non-bit-field non-static data members}} unsupported-warning {{unknown}}
|
|
[[no_unique_address]] int b : 3; // expected-error {{only applies to non-bit-field non-static data members}} unsupported-warning {{unknown}}
|
|
|
|
[[no_unique_address, no_unique_address]] int duplicated; // ok
|
|
// unsupported-warning@-1 2{{unknown}}
|
|
[[no_unique_address]] [[no_unique_address]] int duplicated2; // unsupported-warning 2{{unknown}}
|
|
[[no_unique_address()]] int arglist; // expected-error {{cannot have an argument list}} unsupported-warning {{unknown}}
|
|
|
|
int [[no_unique_address]] c; // expected-error {{cannot be applied to types}} unsupported-error {{cannot be applied to types}}
|
|
};
|