Skip to content

Commit e634bc0

Browse files
committed
Add a group for warning warn_new_feature_redeclaration
rdar://160667736
1 parent df1f135 commit e634bc0

File tree

2 files changed

+7
-5
lines changed

2 files changed

+7
-5
lines changed

clang/include/clang/Basic/DiagnosticSemaKinds.td

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4145,7 +4145,8 @@ def err_feature_invalid_for_decl : Error<
41454145
def err_feature_merge_incompatible : Error<
41464146
"cannot merge incompatible feature attribute to this decl">;
41474147
def warn_new_feature_redeclaration : Warning<
4148-
"new domain availability attributes cannot be added to redeclarations">, DefaultError;
4148+
"new domain availability attributes cannot be added to redeclarations">,
4149+
InGroup<DiagGroup<"domain-availability-redeclaration">>, DefaultError;
41494150
def err_feature_invalid_added : Error<
41504151
"cannot add feature availability to this decl">;
41514152
def note_feature_incompatible0 : Note<

clang/test/Sema/feature-availability.c

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
// RUN: %clang_cc1 -triple arm64-apple-macosx15 -fblocks -ffeature-availability=feature1:1 -ffeature-availability=feature2:0 -ffeature-availability=feature3:on -fsyntax-only -Wunreachable-code -verify %s
2-
// RUN: %clang_cc1 -triple arm64-apple-macosx15 -fblocks -fsyntax-only -Wunreachable-code -verify -DUSE_DOMAIN %s
1+
// RUN: %clang_cc1 -triple arm64-apple-macosx15 -fblocks -ffeature-availability=feature1:1 -ffeature-availability=feature2:0 -ffeature-availability=feature3:on -fsyntax-only -Wunreachable-code -verify=expected,redecl %s
2+
// RUN: %clang_cc1 -triple arm64-apple-macosx15 -fblocks -ffeature-availability=feature1:1 -ffeature-availability=feature2:0 -ffeature-availability=feature3:on -fsyntax-only -Wunreachable-code -Wno-domain-availability-redeclaration -verify=expected %s
3+
// RUN: %clang_cc1 -triple arm64-apple-macosx15 -fblocks -fsyntax-only -Wunreachable-code -verify=expected,redecl -DUSE_DOMAIN %s
34

45
#include <availability_domain.h>
56

@@ -75,12 +76,12 @@ void (* __attribute__((availability(domain:feature2, AVAIL))) fp3)(void) = func6
7576
void func6(void);
7677
__attribute__((availability(domain:feature1, AVAIL))) void func6(void); // expected-note {{is incompatible with __attribute__((availability(domain:feature1, 0)))}}
7778
__attribute__((availability(domain:feature1, UNAVAIL))) void func6(void); // expected-error {{cannot merge incompatible feature attribute to this decl}} expected-note {{feature attribute __attribute__((availability(domain:feature1, 1)))}}
78-
__attribute__((availability(domain:feature1, AVAIL))) void func8(void); // expected-error {{new domain availability attributes cannot be added to redeclarations}}
79+
__attribute__((availability(domain:feature1, AVAIL))) void func8(void); // redecl-error {{new domain availability attributes cannot be added to redeclarations}}
7980

8081
int g0;
8182
__attribute__((availability(domain:feature1, AVAIL))) int g0; // expected-note {{is incompatible with __attribute__((availability(domain:feature1, 0)))}}
8283
__attribute__((availability(domain:feature1, UNAVAIL))) int g0; // expected-error {{cannot merge incompatible feature attribute to this decl}} expected-note {{feature attribute __attribute__((availability(domain:feature1, 1)))}}
83-
__attribute__((availability(domain:feature1, AVAIL))) int g2;// expected-error {{new domain availability attributes cannot be added to redeclarations}}
84+
__attribute__((availability(domain:feature1, AVAIL))) int g2;// redecl-error {{new domain availability attributes cannot be added to redeclarations}}
8485

8586
typedef int INT0 __attribute__((availability(domain:feature2, AVAIL)));
8687
typedef INT0 INT1 __attribute__((availability(domain:feature2, AVAIL)));

0 commit comments

Comments
 (0)