[cfe-dev] clang 3.2 libclang: crash detected during reparsing

Oliver Giles ogtifs at gmail.com
Thu Apr 4 00:14:51 PDT 2013


I just tried this again with the latest clang from svn. The original 
snippet works but the next lines in my original code are:

CXCursor cursor = clang_getTranslationUnitCursor(tu);
CXSourceRange sr = clang_getCursorExtent(cursor);
CXToken* tokens;
unsigned numtokens;
clang_tokenize(tu, sr, &tokens, &numtokens);
CXCursor* cursors = new CXCursor[numtokens];
clang_annotateTokens(tu, tokens, numtokens, cursors);

Appending even the first line of this (clang_getTranslationUnitCursor) 
to the example I gave earlier causes a segfault in the clang 3.3 library.

Oliver

On 2013-01-16 20:14, Argyrios Kyrtzidis wrote:
> Fixed in r172632, thanks!
>
> On Jan 15, 2013, at 9:36 PM, Oliver <ogtifs at gmail.com> wrote:
>
>> Hi,
>> Some example code for document editing I was using with clang 3.1 now segfaults on clang 3.2:
>>
>> #include <clang-c/Index.h>
>> #include <string.h>
>>
>> char DOCUMENT[] = "int main() { return 0; }\n";
>>
>> int main(int argc, char** argv) {
>> 	const char* args;
>> 	CXIndex ci = clang_createIndex(0,0);
>> 	CXTranslationUnit tu =
>> 			clang_parseTranslationUnit(ci, "main.cpp", &args,
>> 			 0, NULL, 0, clang_defaultEditingTranslationUnitOptions());
>> 	CXUnsavedFile file;
>> 	file.Filename = "main.cpp";
>> 	file.Contents = DOCUMENT;
>> 	file.Length = strlen(DOCUMENT);
>> 	clang_reparseTranslationUnit(tu, 1, &file, clang_defaultEditingTranslationUnitOptions());
>> 	return 0;
>> }
>>
>> Output is:
>> libclang: crash detected during reparsing
>> Segmentation fault (core dumped)
>>
>> Am I doing something perverted or is this a bug?
>>
>> Oliver
>> _______________________________________________
>> 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