[clang] allow const structs/unions/arrays to be constant expressions for C
For code like: struct foo { ... }; struct bar { struct foo foo; }; const struct foo my_foo = { ... }; struct bar my_bar = { .foo = my_foo }; Eli Friedman points out the relevant part of the C standard seems to have some flexibility in what is considered a constant expression: 6.6 paragraph 10: An implementation may accept other forms of constant expressions. GCC 8 added support for these, so clang not supporting them has been a constant thorn in the side of source code portability within the Linux kernel. Fixes: https://github.com/llvm/llvm-project/issues/44502 Reviewed By: efriedma Differential Revision: https://reviews.llvm.org/D76096
Loading
Please sign in to comment