
This allows ASTs to be merged when they contain GenericSelectionExpr nodes (this is _Generic from C11). This is needed, for example, for CTU analysis of C code that makes use of _Generic, like the Linux kernel. The node is already supported in the AST, but it didn't have a matcher in ASTMatchers. So, this change adds the matcher and adds support to ASTImporter. Additionally, this change adds support for structural equivalence of _Generic in the AST. Reviewed By: martong, aaron.ballman Differential Revision: https://reviews.llvm.org/D92600
6 lines
128 B
C++
6 lines
128 B
C++
template <typename T>
|
|
void f() {
|
|
T x;
|
|
_Static_assert(_Generic(x, float : 0, int : 1), "Incorrect semantics of _Generic");
|
|
}
|