Author: Aaron Ballman Date: 2024-04-02T13:36:45-04:00 New Revision: 3cf9f2c3a4b3aaffa9c1dbbe34624bcaabefd390
URL: https://github.com/llvm/llvm-project/commit/3cf9f2c3a4b3aaffa9c1dbbe34624bcaabefd390 DIFF: https://github.com/llvm/llvm-project/commit/3cf9f2c3a4b3aaffa9c1dbbe34624bcaabefd390.diff LOG: [C99] Claim conformance to WG14 N782 C89 has more restrictions on aggregate initialization that were relaxed in C99. We started diagnosing the C89 extension in Clang 3.4. Added: clang/test/C/C99/n782.c Modified: clang/www/c_status.html Removed: ################################################################################ diff --git a/clang/test/C/C99/n782.c b/clang/test/C/C99/n782.c new file mode 100644 index 00000000000000..d147fd6fb1a1a2 --- /dev/null +++ b/clang/test/C/C99/n782.c @@ -0,0 +1,23 @@ +/* RUN: %clang_cc1 -verify -std=c99 -pedantic %s + RUN: %clang_cc1 -verify=c89 -std=c89 -pedantic %s + expected-no-diagnostics + */ + +/* WG14 N782: Clang 3.4 + * Relaxed constraints on aggregate and union initialization + */ + +void test(void) { + struct S { + int x, y; + }; + int a = 1, b = 2; + struct S s = { a, b }; /* c89-warning {{initializer for aggregate is not a compile-time constant}} */ + + union U { + int x; + float f; + }; + union U u = { a }; /* c89-warning {{initializer for aggregate is not a compile-time constant}} */ +} + diff --git a/clang/www/c_status.html b/clang/www/c_status.html index a96232965a1e9d..62100611219e58 100644 --- a/clang/www/c_status.html +++ b/clang/www/c_status.html @@ -359,8 +359,8 @@ <h2 id="c99">C99 implementation status</h2> </tr> <tr> <td>relaxed constraints on aggregate and union initialization</td> - <td>Unknown</td> - <td class="unknown" align="center">Unknown</td> + <td><a href="https://www.open-std.org/jtc1/sc22/wg14/www/docs/n782.htm">N782</a></td> + <td class="full" align="center">Clang 3.4</td> </tr> <tr> <td>relaxed restrictions on portable header names</td> _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits