summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDale Johannesen <dalej@apple.com>2010-07-30 21:09:48 +0000
committerDale Johannesen <dalej@apple.com>2010-07-30 21:09:48 +0000
commitcf0287e56d59dbbf9193f9e113492ed45fad738f (patch)
tree41a739b1bb81a1cf88b6dc3174c8150fc49ba008
parentd566d2c7b5bde2e1c4650ac3539b8dddf525bfbf (diff)
downloadbcm5719-llvm-cf0287e56d59dbbf9193f9e113492ed45fad738f.tar.gz
bcm5719-llvm-cf0287e56d59dbbf9193f9e113492ed45fad738f.zip
PPC doesn't supported VLA with large alignment. This was
formerly rejected by the FE, so asserted in the BE; now the FE only warns, so we treat it as a legitimate fatal error in PPC BE. This means the test for the feature won't pass, so it's xfail'd. llvm-svn: 109892
-rw-r--r--llvm/lib/Target/PowerPC/PPCRegisterInfo.cpp4
-rw-r--r--llvm/test/FrontendC/vla-1.c2
2 files changed, 4 insertions, 2 deletions
diff --git a/llvm/lib/Target/PowerPC/PPCRegisterInfo.cpp b/llvm/lib/Target/PowerPC/PPCRegisterInfo.cpp
index cc69fb5206f..113c9fd82b2 100644
--- a/llvm/lib/Target/PowerPC/PPCRegisterInfo.cpp
+++ b/llvm/lib/Target/PowerPC/PPCRegisterInfo.cpp
@@ -449,8 +449,8 @@ void PPCRegisterInfo::lowerDynamicAlloc(MachineBasicBlock::iterator II,
// Get stack alignments.
unsigned TargetAlign = MF.getTarget().getFrameInfo()->getStackAlignment();
unsigned MaxAlign = MFI->getMaxAlignment();
- assert(MaxAlign <= TargetAlign &&
- "Dynamic alloca with large aligns not supported");
+ if (MaxAlign > TargetAlign)
+ report_fatal_error("Dynamic alloca with large aligns not supported");
// Determine the previous frame's address. If FrameSize can't be
// represented as 16 bits or we need special alignment, then we load the
diff --git a/llvm/test/FrontendC/vla-1.c b/llvm/test/FrontendC/vla-1.c
index c6c58f6cc36..77f78a5e3af 100644
--- a/llvm/test/FrontendC/vla-1.c
+++ b/llvm/test/FrontendC/vla-1.c
@@ -1,4 +1,6 @@
// RUN: %llvmgcc_only -std=gnu99 %s -S |& grep {warning: alignment for}
+// ppc does not support this feature, and gets a fatal error at runtime.
+// XFAIL: powerpc
int foo(int a)
{
OpenPOWER on IntegriCloud