[cfe-commits] r106216 - in /cfe/trunk: include/clang/AST/TypeLoc.h include/clang/Lex/Token.h lib/Sema/SemaExprCXX.cpp

Gabor Greif ggreif at gmail.com
Thu Jun 17 11:05:25 PDT 2010


On Thu, Jun 17, 2010 at 7:04 PM, John McCall <rjmccall at apple.com> wrote:
>
> On Jun 17, 2010, at 4:29 AM, Gabor Greif wrote:
>
>> Author: ggreif
>> Date: Thu Jun 17 06:29:31 2010
>> New Revision: 106216
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=106216&view=rev
>> Log:
>> fix some more gcc3.4 constness warnings
>>
>> Modified:
>>    cfe/trunk/include/clang/AST/TypeLoc.h
>>    cfe/trunk/include/clang/Lex/Token.h
>>    cfe/trunk/lib/Sema/SemaExprCXX.cpp
>>
>> Modified: cfe/trunk/include/clang/AST/TypeLoc.h
>> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/AST/TypeLoc.h?rev=106216&r1=106215&r2=106216&view=diff
>> ==============================================================================
>> --- cfe/trunk/include/clang/AST/TypeLoc.h (original)
>> +++ cfe/trunk/include/clang/AST/TypeLoc.h Thu Jun 17 06:29:31 2010
>> @@ -142,7 +142,7 @@
>>
>> /// \brief Return the TypeLoc for a type source info.
>> inline TypeLoc TypeSourceInfo::getTypeLoc() const {
>> -  return TypeLoc(Ty, (void*)(this + 1));
>> +  return TypeLoc(Ty, const_cast<TypeSourceInfo*>(this + 1));
>> }
>
> Please make this const_cast<void*>;  right now it looks *really* bizarre.

It does :-(

I tried const_cast<void*> first but the compiler would not let me.
Probably because the const_cast is only allowed to strip cv-quals
and not let us up/downcast.

This is all very strange, I believe gcc3.4's c-style cast typechecker
was programmed by crack smoking aliens...

I can offer following alternatives:

1) extra line:
void *temp = const_cast<TypeSourceInfo*>(this + 1);
return TypeLoc(Ty, temp);

2) two casts in row:
return TypeLoc(Ty, const_cast<void*>(static_cast<const void*>(this + 1)));

3) back out this abomination, who uses gcc3.4 anyway? :-)
(unfortunately my build machine is RHEL5 where the system compiler is gcc4.1
marked as *broken* for LLVM).

I do not really get emotional because of this.

Cheers,

    Gabor

>
> John.




More information about the cfe-commits mailing list