[cfe-dev] invalid bits size for WrittenBuiltinSpecs::Type
Vladimir Voskresensky via cfe-dev
cfe-dev at lists.llvm.org
Mon Mar 13 10:35:39 PDT 2017
Hello Clang Developers,
in file clang/Basic/Specifiers.h there is
struct clang::WrittenBuiltinSpecs {
/*DeclSpec::TST*/ unsigned Type : 5; // << must be *6*
....
};
"Type" field must be 6 to match DeclSpec::TST which is the same as enum
TypeSpecifierType
which has
TST_error // erroneous type
with value 43 which can not be kept in 5 bits field.
as a correct example you can see that
clang::DeclSpec::TypeSpecType field is 6 bits
So, we corrupt values during save in
clang::DeclSpec::SaveWrittenBuiltinSpecs for all after TST_image1d_t.
Btw, due to this TST_error is changed to TST_float128....
Hope it helps,
Vladimir.
More information about the cfe-dev
mailing list