[clang] Implement constexpr DesignatedInitUpdateExpr. (#196427) DesignatedInitUpdateExpr exists to handle some obscure edge cases in C, where the usual InitListExpr canonicalization can't be performed. Previously, we didn't need constant evaluation for this, but C23 constexpr means we need to evaluate this before codegen. Implementation is mostly straightforward: just need to evaluate the two subexpressions, in order, and skip any NoInitExprs. Along the way, I ran into an issue with the way we manage array APValues for non-bytecode constant evaluation; fix reallocation to work correctly. Fixes #193373. Fixes #196450. GitOrigin-RevId: 545f16217dff218c85c94990566439d3aedfb8e1
Welcome to Clang.
This is a compiler front-end for the C family of languages (C, C++ and Objective-C) which is built as part of the LLVM compiler infrastructure project.
Unlike many other compiler frontends, Clang is useful for a number of things beyond just compiling code: we intend for Clang to be host to a number of different source-level tools. One example of this is the Clang Static Analyzer.
If you're interested in more (including how to build Clang) it is best to read the relevant websites. Here are some pointers:
Information on Clang: http://clang.llvm.org/
Building and using Clang: http://clang.llvm.org/get_started.html
Clang Static Analyzer: http://clang-analyzer.llvm.org/
Information on the LLVM project: http://llvm.org/
If you have questions or comments about Clang, a great place to discuss them is on the Clang forums:
If you find a bug in Clang, please file it in the LLVM bug tracker: