diff options
Diffstat (limited to 'clang/test')
| -rw-r--r-- | clang/test/Sema/attr-deprecated.c | 2 | ||||
| -rw-r--r-- | clang/test/Sema/attr-unavailable-message.c | 21 | ||||
| -rw-r--r-- | clang/test/SemaCXX/attr-deprecated.cpp | 4 |
3 files changed, 24 insertions, 3 deletions
diff --git a/clang/test/Sema/attr-deprecated.c b/clang/test/Sema/attr-deprecated.c index eeef0d757a7..2889f8fa114 100644 --- a/clang/test/Sema/attr-deprecated.c +++ b/clang/test/Sema/attr-deprecated.c @@ -109,7 +109,7 @@ enum __attribute__((deprecated)) Test20 { void test20() { enum Test20 f; // expected-warning {{'Test20' is deprecated}} f = test20_a; // expected-warning {{'test20_a' is deprecated}} - f = test20_b; + f = test20_b; // expected-warning {{'Test20' is deprecated}} } char test21[__has_feature(attribute_deprecated_with_message) ? 1 : -1]; diff --git a/clang/test/Sema/attr-unavailable-message.c b/clang/test/Sema/attr-unavailable-message.c index 9f663fc4efd..9b0c3debd8a 100644 --- a/clang/test/Sema/attr-unavailable-message.c +++ b/clang/test/Sema/attr-unavailable-message.c @@ -26,3 +26,24 @@ void unavail(void) { void (*fp)() = &bar; double (*fp4)(double) = dfoo; } + +// rdar://10201690 +enum foo { + a = 1, + b __attribute__((deprecated())) = 2, + c = 3 +}__attribute__((deprecated())); + +enum fee { // expected-note 2 {{declaration has been explicitly marked unavailable here}} + r = 1, + s = 2, + t = 3 +}__attribute__((unavailable())); + +enum fee f() { // expected-error {{error: 'fee' is unavailable}} + int i = a; // expected-warning {{'foo' is deprecated }} + + i = b; // expected-warning {{'b' is deprecated}} + + return r; // expected-error {{'fee' is unavailable}} +} diff --git a/clang/test/SemaCXX/attr-deprecated.cpp b/clang/test/SemaCXX/attr-deprecated.cpp index fe7c833d322..945aff363eb 100644 --- a/clang/test/SemaCXX/attr-deprecated.cpp +++ b/clang/test/SemaCXX/attr-deprecated.cpp @@ -198,7 +198,7 @@ namespace test6 { }; void testA() { A x; // expected-warning {{'A' is deprecated}} - x = a0; + x = a0; // expected-warning {{'A' is deprecated}} } enum B { @@ -218,7 +218,7 @@ namespace test6 { }; void testC() { C<int>::Enum x; // expected-warning {{'Enum' is deprecated}} - x = C<int>::c0; + x = C<int>::c0; // expected-warning {{'Enum' is deprecated}} } template <class T> struct D { |

