I use python bindings of libclang.

Source files are correct. Build works fine.

I pass compile_commands.json to libclang parser.


And I've written this snippet in python :


def do_cparse(srcFile : str, index : clang.cindex.Index, compDB : 
CompilationDatabase, additional_args : list):
    def clean_commandLine(args : list):
        del args[0]
        i = 0
        while i < len(args):
            if args[i] == '-c' or args[i] == '-o':
                del args[i]
                del args[i]
            else:
                i += 1
        return args

    if compDB is not None:
        compileCommands = compDB.getCompileCommands(srcFile)
        if compileCommands is None:
            args = []
        else:
            args = compileCommands.__getitem__(0).arguments
            args = [arg for arg in args]
            args = clean_commandLine(args)
    else:
        args = []
    try:
        tu = index.parse(srcFile, args.extend(additional_args))
    except TranslationUnitLoadError:
        pass
    #from pprint import pprint
    #pprint(('nodes', get_info(tu.cursor)))

    for diagnostic in tu.diagnostics:
        print(diagnostic.format() +  '\n')



But diagnostics deliver this :

/usr/include/limits.h:123:16: fatal error: 'limits.h' file not found
/usr/include/stdio.h:33:11: fatal error: 'stddef.h' file not found
/usr/include/stdlib.h:32:10: fatal error: 'stddef.h' file not found
/usr/include/unistd.h:229:10: fatal error: 'stddef.h' file not found


It seems libclang goes wrong. Is it a known issue ?


More, project C-headers are also affected while -I<path to myheaders> is passed 
to Index.parse().


Thanks a lot for your contributions.


Regards

Didier.
_______________________________________________
cfe-users mailing list
cfe-users@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-users

Reply via email to