From: Lewis Hyatt Date: Fri, 25 Aug 2023 19:57:19 +0000 (-0400) Subject: testsuite: Add test for already-fixed issue with _Pragma expansion [PR90400] X-Git-Tag: basepoints/gcc-15~5953 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d8e08ba9396b1f7da50011468f260250b7afaab7;p=thirdparty%2Fgcc.git testsuite: Add test for already-fixed issue with _Pragma expansion [PR90400] The PR was fixed by r12-5454. Since the fix was somewhat incidental, although related, add a testcase from PR90400 too before closing it out. gcc/testsuite/ChangeLog: PR preprocessor/90400 * c-c++-common/cpp/pr90400.c: New test. --- diff --git a/gcc/testsuite/c-c++-common/cpp/pr90400.c b/gcc/testsuite/c-c++-common/cpp/pr90400.c new file mode 100644 index 000000000000..4f2cab8d6ab5 --- /dev/null +++ b/gcc/testsuite/c-c++-common/cpp/pr90400.c @@ -0,0 +1,14 @@ +/* { dg-do compile } */ +/* { dg-additional-options "-save-temps" } */ +/* PR preprocessor/90400 */ + +#define OUTER(x) x +#define FOR(x) _Pragma ("GCC unroll 0") for (x) +void f () +{ + /* If the pragma were to be seen prior to the expansion of FOR, as was + the case before r12-5454, then the unroll pragma would complain + because the immediately following statement would be ";" rather than + a loop. */ + OUTER (; FOR (int i = 0; i != 1; ++i);) /* { dg-bogus {statement expected before ';' token} } */ +}