-
Notifications
You must be signed in to change notification settings - Fork 11.5k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Revert "Revert fix bug that undefined internal is a warning only for …
…-pedantic-errors This reverts commit 9f283bf which was a revert of commit e16882f; it addresses the issue found by the failing buildbot.
- Loading branch information
1 parent
9f283bf
commit 0171e23
Showing
4 changed files
with
43 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
// RUN: %clang_cc1 -fsyntax-only -verify %s -std=c11 -Wno-pointer-arith -Wno-gnu-alignof-expression -Wno-unused -pedantic-errors | ||
|
||
static void *a(void); // expected-error {{function 'a' has internal linkage but is not defined}} | ||
static void *b(void); // expected-error {{function 'b' has internal linkage but is not defined}} | ||
static void *c(void); // expected-error {{function 'c' has internal linkage but is not defined}} | ||
static void *d(void); // expected-error {{function 'd' has internal linkage but is not defined}} | ||
static void *no_err(void); | ||
|
||
int main(void) | ||
{ | ||
a; // expected-note {{used here}} | ||
|
||
int i = _Alignof(no_err); | ||
|
||
int j = _Generic(&no_err, void *(*)(void): 0); | ||
|
||
void *k = _Generic(&no_err, void *(*)(void): b(), default: 0); // expected-note {{used here}} | ||
|
||
// FIXME according to the C standard there should be no error if the undefined internal is | ||
// "part of the expression in a generic association that is not the result expression of its generic selection;" | ||
// but, currently, clang wrongly emits an error in this case | ||
k = _Generic(&no_err, void *(*)(void): 0, default: c()); // expected-note {{used here}} | ||
|
||
k = _Generic(&no_err, int (*)(void) : 0, default : d()); // expected-note {{used here}} | ||
|
||
int l = sizeof(no_err); | ||
|
||
__typeof__(&no_err) x; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
// RUN: %clang_cc1 -fsyntax-only -verify %s -std=c23 -pedantic-errors | ||
|
||
// expected-no-diagnostics | ||
|
||
static int f(void); | ||
|
||
int main(void) | ||
{ | ||
typeof(&f) x; | ||
} |