VAST is an experimental compiler pipeline designed for program analysis of C and C++. It provides a tower of IRs as MLIR dialects to choose the best fit representations for a program analysis or further program abstraction.
[X] I have read the documentation and the proposed feature is not implemented.
Description
Looking up symbol using the default_symbol_mangler::symbol() method to find a decl missing a body might return typedef op. This is troublesome, as we expect it to be an incomplete RecordDecl and we try to add the body to the typedef.
Example reproducer (based on LLVM SingleSource TS: SingleSource/Regression/C/gcc-c-torture/execute/20040703-1.c)
typedef unsigned int cpp_num_part;
typedef struct cpp_num cpp_num;
struct cpp_num
{
cpp_num_part high;
cpp_num_part low;
int unsignedp;
int overflow;
};
Prerequisites
Description
Looking up symbol using the
default_symbol_mangler::symbol()
method to find a decl missing a body might returntypedef
op. This is troublesome, as we expect it to be an incompleteRecordDecl
and we try to add the body to thetypedef
. Example reproducer (based on LLVM SingleSource TS:SingleSource/Regression/C/gcc-c-torture/execute/20040703-1.c
)