[cfe-dev] Why is "..." printed 'After' the arg name in TypePrinter?

Vassil Vassilev vvasilev at cern.ch
Fri Aug 15 05:54:25 PDT 2014


On 14/08/14 20:39, Aaron Ballman wrote:
> On Thu, Aug 14, 2014 at 1:02 PM, Vassil Vassilev
> <vasil.georgiev.vasilev at cern.ch> wrote:
>> On 08/01/2014 04:11 PM, Vassil Vassilev wrote:
>>> On 08/01/2014 03:58 PM, Aaron Ballman wrote:
>>>> On Fri, Aug 1, 2014 at 9:34 AM, Aaron Ballman <aaron at aaronballman.com>
>>>> wrote:
>>>>> On Fri, Aug 1, 2014 at 9:26 AM, Vassil Vassilev
>>>>> <vasil.georgiev.vasilev at cern.ch> wrote:
>>>>>> Hi,
>>>>>>     Thanks for fixing this issue:
>>>>>>     There seem to be another issue with recent clang when printing:
>>>>>>     cat T.h
>>>>>>     typedef struct { } __pthread_unwind_buf_t __attribute__
>>>>>> ((__aligned__));
>>>>>>
>>>>>>     clang -cc1  -x c++ -fsyntax-only T.h -ast-print
>>>>>> struct {
>>>>>> } typedef __pthread_unwind_buf_t __attribute__((aligned(clang:
>>>>>>
>>>>>> /home/vvassilev/workspace/llvm-github/obj/tools/clang/lib/AST/../../include/clang/AST/AttrImpl.inc:294:
>>>>>> virtual void clang::AlignedAttr::printPretty(llvm::raw_ostream &, const
>>>>>> clang::PrintingPolicy &) const: Assertion `isalignmentExpr &&
>>>>>> alignmentExpr
>>>>>> != nullptr' failed.
>>>>> This is a problem with the way we tablegen attribute helper methods.
>>>>> I'll look into it, thank you for bringing it to my attention!
>>>> This should be resolved in r214513.
>>> That was quick :-)
>>> Thanks a lot!
>> Another interesting issue with AnnotateAttr is that setAnnotation uses:
>> ...
>> this->annotation = new (C, 1) char [annotationLength];
>> ...
>>
>> But operator new[]( (unsigned long, clang::ASTContext const&, unsigned long)
>> is not defined and I get a linker error. For clang it works because nobody
>> calls setAnnotation.
>>
>> I can provide more accurate information if needed.
> On what platform are you seeing this link failure? I am unable to
> reproduce with MSVC when I force a usage of setAnnotation, but that
> holds with my belief that the code is fine. See ASTContext.h:2401 for
> the definition of operator new[](size_t, ASTContext&, size_t);
Thanks for the pointer, I somehow missed the definition. It turned out a 
setup issue on our side. Sorry for the noise.
Vassil
>
> ~Aaron




More information about the cfe-dev mailing list