[cfe-dev] clang-cc -ast-print-xml errors

Craig Mortensen mortay at apple.com
Fri Sep 18 09:22:48 PDT 2009


Hi Daniel,

I tried:

clang -S -Xclang -ast-print-xml -x objective-c /System/Library/ 
Frameworks/Foundation.framework/Headers/Foundation.h  -o /tmp/output.xml

...and it gives me the same assertion in DocumentXML.cpp line 51.

I tried your suggestions with empty.c and I was able to get that  
working on a empty.c file.  I think using '-x objective-c' is the  
culprit.

Craig

On Sep 18, 2009, at 1:56 AM, Daniel Dunbar wrote:

> Hi Craig,
>
> The driver doesn't have a built in way to deal with extra clang-cc
> options we don't care to expose from the compiler.
>
> The best way to deal with this is use a driver option which only runs
> clang-cc, and use -Xclang to pass the extra option you want:
> --
> ddunbar at giles:tmp$ touch empty.c
> ddunbar at giles:tmp$ clang -S -Xclang -ast-print-xml t.c -o -
> <?xml version="1.0"?>
> <CLANG_XML>
> ... turns out xml is verbose ...
> ddunbar at giles:tmp$ clang -S -Xclang -ast-print-xml
> ~/llvm/tools/clang/INPUTS/Cocoa_h.m -o t.xml
> Assertion failed: (NodeStack.size() > 1 && "too much backtracking"),
> function toParent, file
> /Volumes/Data/Users/ddunbar/llvm/tools/clang/lib/Frontend/ 
> DocumentXML.cpp,
> line 51.
> ...
> --
>
> - Daniel
>
> On Wed, Sep 16, 2009 at 1:19 PM, Craig Mortensen <mortay at apple.com>  
> wrote:
>> Hi Mike,
>> If I specify the -ast-print-xml, I'm assuming the output will be xml.
>> I think you're right about the pch-thing.  At the beginning of the
>> output file, I see 'CPCH'
>>
>> Removing the -emit-pch will cause an assertion during the creation of
>> the output xml file:
>> Assertion failed: (NodeStack.size() > 1 && "to much backtracking"),
>> function toParent, file DocumentXML.cpp, line 51.
>>
>> ...the incomplete output file is in fact xml and I can read the
>> contents. The file is simply incomplete because of the assertion.
>>
>> This is the command I'm using (with the -emit-pch)
>>
>> ./clang-cc -ast-print-xml -emit-pch --mcpu=yonah -v  -o /tmp/
>> output.xml -x=objective-c /System/Library/Frameworks/
>> Foundation.framework/Headers/Foundation.h
>>
>> I would attach the output file here, but it's a few Mbs...
>>
>> Craig
>>
>> On Sep 15, 2009, at 5:44 PM, Mike Stump wrote:
>>
>>> On Sep 15, 2009, at 5:33 PM, Craig Mortensen wrote:
>>>> On Sep 15, 2009, at 4:58 PM, Eli Friedman wrote:
>>>>
>>>>> That indicates that clang is using the headers from an older  
>>>>> version
>>>> Yep. That was my problem.  I didn't update the headers in / 
>>>> Developer/
>>>> user/lib/clang/1.0/include/
>>>>
>>>> Now that it completes successfully, the xml output file can't be  
>>>> read
>>>> because the encoding is unknown.  I don't see where to specify the
>>>> encoding.
>>>
>>> Is the file written an xml file?  I think -emit-pch might be hosing
>>> you.
>>
>> _______________________________________________
>> 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