[LLVMbugs] [Bug 8733] New: AV when reporting diagnostics in some code-completion results
bugzilla-daemon at llvm.org
bugzilla-daemon at llvm.org
Fri Dec 3 07:25:23 PST 2010
http://llvm.org/bugs/show_bug.cgi?id=8733
Summary: AV when reporting diagnostics in some code-completion
results
Product: clang
Version: trunk
Platform: All
OS/Version: Windows NT
Status: NEW
Severity: normal
Priority: P
Component: Frontend
AssignedTo: unassignedclangbugs at nondot.org
ReportedBy: plc at rowley.co.uk
CC: llvmbugs at cs.uiuc.edu
Created an attachment (id=5865)
--> (http://llvm.org/bugs/attachment.cgi?id=5865)
Contains repro case
Code completion generates an exception when reporting errors in #included macro
expansions with precompiled headers enabled.
> more pl230.h
#define __C(X) (0xFFFFFFFFU >> (31-(X)))
enum {
V = __C(31),
};
> more lm3s_mac.c
#include "pl230.h"
static void
foo(void)
{
/
}
>set CINDEXTEST_EDITING=1
>c-index-test -code-completion-at=lm3s_mac.c:6:2 lm3s_mac.c -nostdinc -I.
[snip]
599B66BE (0x00000004 0x00EEDAC8 0x00BDF760 0x599B6796),
clang::SourceManager::ge
tSLocEntry()+0142 bytes(s),
e:\llvm\llvm\tools\clang\include\clang\basic\sourcem
anager.h, line 818+0022 byte(s)
599B660A (0x00000004 0x00BDFC20 0x00000004 0x00E6B620),
clang::SourceManager::ge
tSLocEntry()+0026 bytes(s),
e:\llvm\llvm\tools\clang\include\clang\basic\sourcem
anager.h, line 824
...and so on.
Actually, this bug is triggered *ONLY* by CXTranslationUnit_PrecompiledPreamble
as far as I can tell. Turning precompiled preamble off and we're good.
You change getDefaultParsingOptions() in c-index-test, you provoke a crash or
not, which is what I did.
static unsigned getDefaultParsingOptions() {
unsigned options = 0; // Nuke this one..
// CXTranslationUnit_DetailedPreprocessingRecord;
if (getenv("CINDEXTEST_EDITING"))
{
// Figure out which option triggers fault: break them out...
options |= CXTranslationUnit_PrecompiledPreamble;
// options |= CXTranslationUnit_CacheCompletionResults;
// options |= CXTranslationUnit_CXXPrecompiledPreamble;
// was: options |= clang_defaultEditingTranslationUnitOptions();
}
if (getenv("CINDEXTEST_COMPLETION_CACHING"))
options |= CXTranslationUnit_CacheCompletionResults;
return options;
}
This may well affect released versions of clang, I have no idea. I'm just
trunking at present.
--
Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.
More information about the llvm-bugs
mailing list