forked from OSchip/llvm-project
Fix PR 4489, a PCH crash during de-serialization.
llvm-svn: 74664
This commit is contained in:
parent
54648d867f
commit
e4d00dd7f6
|
@ -1133,6 +1133,5 @@ Stmt *PCHReader::ReadStmt(llvm::BitstreamCursor &Cursor) {
|
|||
StmtStack.push_back(S);
|
||||
}
|
||||
assert(StmtStack.size() == 1 && "Extra expressions on stack!");
|
||||
SwitchCaseStmts.clear();
|
||||
return StmtStack.back();
|
||||
}
|
||||
|
|
|
@ -826,5 +826,4 @@ void PCHWriter::FlushStmts() {
|
|||
}
|
||||
|
||||
StmtsToEmit.clear();
|
||||
SwitchCaseIDs.clear();
|
||||
}
|
||||
|
|
|
@ -0,0 +1,20 @@
|
|||
// RUN: clang -x c-header -o %t.pch %s &&
|
||||
// RUN: clang -include %t -x c /dev/null -emit-llvm -S -o -
|
||||
// PR 4489: Crash with PCH
|
||||
|
||||
typedef struct _IO_FILE FILE;
|
||||
extern int fprintf (struct _IO_FILE *__restrict __stream,
|
||||
__const char *__restrict __format, ...);
|
||||
|
||||
int x(void)
|
||||
{
|
||||
switch (1) {
|
||||
case 2: ;
|
||||
int y = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void y(void) {
|
||||
extern char z;
|
||||
fprintf (0, "a");
|
||||
}
|
Loading…
Reference in New Issue