aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Criswell <criswell@uiuc.edu>2004-08-10 18:32:06 +0000
committerJohn Criswell <criswell@uiuc.edu>2004-08-10 18:32:06 +0000
commit7d4bacd1af9549bd62e9fd7ea5cd089b781e8d48 (patch)
treec0367f6d26a34995aed7d6bd81b31ea764a67672
parentf0958ae6eb37afe15652302bb207f4300e698c11 (diff)
downloadllvm-7d4bacd1af9549bd62e9fd7ea5cd089b781e8d48.zip
llvm-7d4bacd1af9549bd62e9fd7ea5cd089b781e8d48.tar.gz
llvm-7d4bacd1af9549bd62e9fd7ea5cd089b781e8d48.tar.bz2
Merged in mainline.
llvm-svn: 15617
-rw-r--r--llvm/lib/Target/CBackend/Writer.cpp10
1 files changed, 7 insertions, 3 deletions
diff --git a/llvm/lib/Target/CBackend/Writer.cpp b/llvm/lib/Target/CBackend/Writer.cpp
index 65a110e..bb1548f 100644
--- a/llvm/lib/Target/CBackend/Writer.cpp
+++ b/llvm/lib/Target/CBackend/Writer.cpp
@@ -1390,9 +1390,13 @@ void CWriter::visitCallInst(CallInst &I) {
Out << ")";
return;
case Intrinsic::vaend:
- Out << "va_end(*(va_list*)&";
- writeOperand(I.getOperand(1));
- Out << ")";
+ if (!isa<ConstantPointerNull>(I.getOperand(1))) {
+ Out << "va_end(*(va_list*)&";
+ writeOperand(I.getOperand(1));
+ Out << ")";
+ } else {
+ Out << "va_end(*(va_list*)0)";
+ }
return;
case Intrinsic::vacopy:
Out << "0;";