[cfe-dev] [libclang] Internal buffers becoming corrupted on Windows?
Manuel Klimek
klimek at google.com
Sat Jan 3 06:49:14 PST 2015
Is your libclang compiled with mingw or VS?
See https://github.com/Valloric/ycmd/issues/61 for windows libclang issues
on ycmd.
On Sat Jan 03 2015 at 12:37:18 AM papin_g <guillaume.papin at epitech.eu>
wrote:
> Hello,
>
> I am the author of an package for Emacs that brings libclang power to
> Emacs. It has been reported to me (here:
> https://github.com/Sarcasm/irony-mode/issues/134
> <https://github.com/Sarcasm/irony-mode/issues/134#issuecomment-68412195>) that libclang
> has some issues on Windows. After some search I have identified a
> situation that triggers the issue consistently.
>
> I have a pair of file, source file and header files.
>
> *foo.h*
>
> #ifndef FOO_H_
> #define FOO_H_
>
> struct Foo
> {
> void foobar();
> };
>
> #endif /* !FOO_H_ */
>
>
> *foo.cpp*
>
> #include "foo.h"
>
> void Foo::|
>
>
> foo.cpp is incomplete because it is used for requesting code-completion to
> libclang at the point of the pipe '|'.
>
>
> 1. If I request code completion a first time, everything work as
> expected.
> 2. If I edit foo.h to remove the method foobar() from the struct Foo,
> code completion still work as expected.
> 3. If I restore the foobar() method, code completion breaks with the
> following diagnostics in this case:
>
> ./foo.h:9:2: error: invalid preprocessing directive
> ./foo.h:1:2: error: unterminated conditional directive
>
> I have tested with some bigger changes in terms of characters,
> removing a big comment (~1000 chars) for example and the errors was
> slightly different in this case, warning about null chars in the header
> file.
>
> I have the feeling that the internal buffer Clang has for the header
> file foo.h get corrupted somehow.
>
> Does anyone have opinion about this?
> Some places to look for or ways to debug this?
>
> Additional information:
>
> - This doesn't seem to happen on Linux.
> - I just tried with the trunk (r225060), the issue is still present.
> - A slightly more detailed procedure is described here
> https://github.com/Sarcasm/irony-mode/issues/134#issuecomment-68412195 if
> someone want to reproduce the bug. It is using irony-server, a small
> C++ program that builds with CMake and depends on libclang. This
> program should be easy to get working for people already building Clang on
> Windows (should work with cl/clang-cl/mingw).
>
> Thanks,
> Guillaume
>
> _______________________________________________
> 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/20150103/17be8c05/attachment.html>
More information about the cfe-dev
mailing list