[cfe-dev] fatal error while reparsing translation unit: file '/some/path/to/header' has been modified since the precompiled header '/tmp/preamble-8ae0ef.pch' was built

Dan Schmidt dcschmid at gmail.com
Fri Jun 20 16:39:22 PDT 2014


FYI, I've determined that the issue was introduced in r206309. I haven't
looked into it any further than that at this point, but thought I'd give an
update in case anyone else was able to look into it.

-ds

On Thu Jun 19 2014 at 7:18:12 AM, Dan Schmidt <dcschmid at gmail.com> wrote:

> ping
>
> Has anyone else seen similar errors? Is this a bug in libclang?
>
> On Tue Jun 17 2014 at 10:48:04 AM, Manuel Klimek <klimek at google.com>
> wrote:
>
>> +argyrios
>>
>> On Mon, Jun 16, 2014 at 2:07 PM, Dan Schmidt <dcschmid at gmail.com> wrote:
>>
>>> Hello clang devs,
>>>
>>> I use YouCompleteMe as a semantic completion engine for vim, which in
>>> turn uses libclang to provide completions. By default, YCM uses the 3.4
>>> version of libclang, and all works well. However, I recently updated it to
>>> use the head version and now I'm seeing errors like that listed in the
>>> subject. I've been able to create a minimal reproduction - see the attached
>>> files.
>>>
>>> To execute run commands similar to the following:
>>>
>>>    - tar xvf clang_parse.tar.gz
>>>    - cd clang_parse
>>>    - mkdir obj
>>>    - cd obj
>>>    - cmake -D CMAKE_BUILD_TYPE=Release -G "Unix Makefiles" -D
>>>    PATH_TO_LLVM_ROOT=<path to llvm head install dir - should have include and
>>>    lib under here> ../src/
>>>    - make
>>>    - ./parse_tu
>>>
>>> The basic test case is this:
>>>
>>>    - Write the small cpp and h files to disk.
>>>    - Parse the translation unit - observe that the syntax error is
>>>    reported
>>>    - Immediately reparse the TU.
>>>    - Update the header in memory and reparse - observe that the syntax
>>>    error is gone.
>>>    - Save the header to disk and reparse. Observe the "file
>>>    '/tmp/header_file.h' has been modified since the precompiled header
>>>    '/some/path/preamble-eb3c0c.pch' was built" error.
>>>
>>> Am I using these methods incorrectly, or is there a bug in clang? If I'm
>>> using them incorrectly, what is the correct way to reparse a translation
>>> unit that has changed?
>>>
>>> Thanks,
>>> Dan
>>>
>>>
>>>
>>> _______________________________________________
>>> cfe-dev mailing list
>>> cfe-dev at cs.uiuc.edu
>>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev
>>>
>>>
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20140620/42b351a9/attachment.html>


More information about the cfe-dev mailing list