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

Reid Kleckner via cfe-dev cfe-dev at lists.llvm.org
Mon Mar 13 14:33:12 PDT 2017


I think this is something the compiler should catch. I'm writing a
generalized warning in clang for it right now.

On Mon, Mar 13, 2017 at 12:57 PM, Vladimir Voskresensky via cfe-dev <
cfe-dev at lists.llvm.org> wrote:

> 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>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
>> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev
>>
>
>
>
> _______________________________________________
> cfe-dev mailing listcfe-dev at lists.llvm.orghttp://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/c0ffdd00/attachment.html>


More information about the cfe-dev mailing list