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

Vladimir Voskresensky via cfe-dev cfe-dev at lists.llvm.org
Mon Mar 13 17:33:28 PDT 2017


Thank you!

On 14.03.2017 03:00, Reid Kleckner wrote:
> Patch to catch this bug if you're curious: https://reviews.llvm.org/D30923
>
> On Mon, Mar 13, 2017 at 4:29 PM, Vladimir Voskresensky via cfe-dev 
> <cfe-dev at lists.llvm.org <mailto:cfe-dev at lists.llvm.org>> wrote:
>
>
>
>     On 14.03.2017 00:33, Reid Kleckner via cfe-dev wrote:
>>     I think this is something the compiler should catch. I'm writing
>>     a generalized warning in clang for it right now.
>     Yes, I agree. In fact, this is how I got here myself. I ran test
>
>     ${LLVM_SRC}/llvm/tools/clang/test/Lexer/cxx1z-trigraphs.cpp
>
>     using Clank (the Java port of CLang)
>     https://eurollvm2017.sched.com/event/9wDw/clank-java-port-of-cc-compiler-frontend
>     <https://eurollvm2017.sched.com/event/9wDw/clank-java-port-of-cc-compiler-frontend>
>      and got Java-assert that reducing from enumerator to 5 bits
>     doesn't fit for TST_error value :-) Please, send me the changeset
>     when you are done with compiler warning. Thanks!Vladimir.
>>     On Mon, Mar 13, 2017 at 12:57 PM, Vladimir Voskresensky via
>>     cfe-dev <cfe-dev at lists.llvm.org <mailto: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
>>>         <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 <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
>>         <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 <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 <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> 
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20170314/3920bbdc/attachment.html>


More information about the cfe-dev mailing list