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

Vassil Vassilev vasil.georgiev.vasilev at cern.ch
Thu Aug 14 10:02:44 PDT 2014


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.

Vassil


> Vassil
>>
>> ~Aaron
>
> _______________________________________________
> cfe-dev mailing list
> cfe-dev at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev




More information about the cfe-dev mailing list