[cfe-dev] [Codegen-ARM] Codegen crash for callsites having big sized arguments

NAVEEN CHANDRAKAR naveen.c at samsung.com
Tue May 21 23:12:13 PDT 2013


Following TC would make compiler crash during cross compilation for arm and couple of other targets (MIPS etc.)

>>> Reduced TC >>>
struct S630 { 
 double a[257];
};
 
struct S630 s630;
extern struct S630 check630 (struct S630);

extern void checkx630 (struct S630);
 
void test630 (void) {
checkx630 (check630 (s630));
}
<<< Cross compiled for arm causes the compiled crash <<<

Current code of PrologEpilogInserter.cpp has an assert which checks for stack balancing at BasicBlock level, which is incorrect.
It should be at Function level (as proposed in the diff attached in the bug link below).

I've logged a bug at with same details on http://llvm.org/bugs/show_bug.cgi?id=15932
Anyone having knowledge about the module, please revert back.

-Naveen




More information about the cfe-dev mailing list