summaryrefslogtreecommitdiffstats
path: root/clang/lib
diff options
context:
space:
mode:
authorSebastian Redl <sebastian.redl@getdesigned.at>2009-01-09 21:09:38 +0000
committerSebastian Redl <sebastian.redl@getdesigned.at>2009-01-09 21:09:38 +0000
commit020cddcfee9cdec09b281fe439bc1ec0c570238e (patch)
tree8112fc58267dfd62a6f37b8967ae5fe946c3ac1a /clang/lib
parent519976c4e92b635bf66e5ec469071d5ba5acf6ab (diff)
downloadbcm5719-llvm-020cddcfee9cdec09b281fe439bc1ec0c570238e.tar.gz
bcm5719-llvm-020cddcfee9cdec09b281fe439bc1ec0c570238e.zip
Prevent a segfault for vaarg expressions on unsupported architectures.
llvm-svn: 62008
Diffstat (limited to 'clang/lib')
-rw-r--r--clang/lib/CodeGen/CGExprAgg.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/clang/lib/CodeGen/CGExprAgg.cpp b/clang/lib/CodeGen/CGExprAgg.cpp
index 834d7483baf..7571149b5a7 100644
--- a/clang/lib/CodeGen/CGExprAgg.cpp
+++ b/clang/lib/CodeGen/CGExprAgg.cpp
@@ -278,9 +278,11 @@ void AggExprEmitter::VisitVAArgExpr(VAArgExpr *VE) {
llvm::Value *ArgValue = CGF.EmitLValue(VE->getSubExpr()).getAddress();
llvm::Value *ArgPtr = CGF.EmitVAArg(ArgValue, VE->getType());
- if (!ArgPtr)
+ if (!ArgPtr) {
CGF.ErrorUnsupported(VE, "aggregate va_arg expression");
-
+ return;
+ }
+
if (DestPtr)
// FIXME: volatility
CGF.EmitAggregateCopy(DestPtr, ArgPtr, VE->getType());
OpenPOWER on IntegriCloud