[cfe-dev] invalid bits size for WrittenBuiltinSpecs::Type

Vladimir Voskresensky via cfe-dev cfe-dev at lists.llvm.org
Mon Mar 13 12:57:24 PDT 2017


Reid,

May be it's worth to have the same assert for clang::DeclSpec::TypeSpecType?

Thanks,
Vladimir.

On 13.03.2017 21:59, Reid Kleckner via cfe-dev wrote:
> Thanks, fixed in r297654.
>
> On Mon, Mar 13, 2017 at 10:35 AM, Vladimir Voskresensky via cfe-dev 
> <cfe-dev at lists.llvm.org <mailto:cfe-dev at lists.llvm.org>> wrote:
>
>     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.
>     _______________________________________________
>     cfe-dev mailing list
>     cfe-dev at lists.llvm.org <mailto:cfe-dev at lists.llvm.org>
>     http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev
>     <http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev>
>
>
>
>
> _______________________________________________
> cfe-dev mailing list
> cfe-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20170313/dfd56ad6/attachment.html>


More information about the cfe-dev mailing list