-
Notifications
You must be signed in to change notification settings - Fork 10.8k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[C23] Implement N2490, Remove trigraphs??!
This follows the same implementation logic as with C++ and is compatible with the GCC behavior in C. Trigraphs are enabled by default in -std=c* conformance modes before C23, but are disabled in GNU and Microsoft modes as well as in C23 or later.
- Loading branch information
1 parent
bc82cfb
commit 997ffce
Showing
6 changed files
with
59 additions
and
17 deletions.
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,26 @@ | ||
// RUN: %clang_cc1 -verify=no-trigraphs -std=c23 %s | ||
// RUN: %clang_cc1 -verify=no-trigraphs -std=gnu23 %s | ||
// RUN: %clang_cc1 -verify=no-trigraphs -std=gnu17 %s | ||
// RUN: %clang_cc1 -verify=no-trigraphs -std=gnu11 %s | ||
// RUN: %clang_cc1 -verify=no-trigraphs -std=gnu99 %s | ||
// RUN: %clang_cc1 -verify=no-trigraphs -std=gnu89 %s | ||
// RUN: %clang_cc1 -verify=trigraphs -std=c17 %s | ||
// RUN: %clang_cc1 -verify=trigraphs -std=c11 %s | ||
// RUN: %clang_cc1 -verify=trigraphs -std=c99 %s | ||
// RUN: %clang_cc1 -verify=trigraphs -std=c89 %s | ||
// RUN: %clang_cc1 -verify=trigraphs -std=c23 -ftrigraphs %s | ||
|
||
/* WG14 N2940: Clang 18 | ||
* Removing trigraphs??! | ||
*/ | ||
|
||
// Trigraphs are enabled by default in any conforming C mode before C23, but | ||
// are otherwise disabled (in all GNU modes, and in C23 or later). | ||
// The ??= trigraph, if supported, will become the # character, which is a null | ||
// preprocessor directive that does nothing. | ||
|
||
??= | ||
// no-trigraphs-warning@-1 {{trigraph ignored}} \ | ||
no-trigraphs-error@-1 {{expected identifier or '('}} \ | ||
trigraphs-warning@-1 {{trigraph converted to '#' character}} | ||
|
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
997ffce
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
End of an era... I still remember coming across this http://www.gotw.ca/gotw/086.htm back in the day.