summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CGExpr.cpp
diff options
context:
space:
mode:
authorDavid Majnemer <david.majnemer@gmail.com>2015-02-14 01:35:07 +0000
committerDavid Majnemer <david.majnemer@gmail.com>2015-02-14 01:35:07 +0000
commit6866a3c6f4c6ac4c368f4292b6567e456646b07b (patch)
tree4faf9187ddbd56c54ca88e3bf3457423d2078208 /clang/lib/CodeGen/CGExpr.cpp
parent33cc10724d7d5ae3e6502fb8806cc02a1f821aef (diff)
downloadbcm5719-llvm-6866a3c6f4c6ac4c368f4292b6567e456646b07b.tar.gz
bcm5719-llvm-6866a3c6f4c6ac4c368f4292b6567e456646b07b.zip
CodeGen: Correctly convert atomic bool from i8 to i1
Bools are a little tricky, they are i8 in memory and must be coerced back to i1 before further operations can be performed on them. This fixes PR22577. llvm-svn: 229204
Diffstat (limited to 'clang/lib/CodeGen/CGExpr.cpp')
-rw-r--r--clang/lib/CodeGen/CGExpr.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/clang/lib/CodeGen/CGExpr.cpp b/clang/lib/CodeGen/CGExpr.cpp
index 568f949c342..d82fff85dd3 100644
--- a/clang/lib/CodeGen/CGExpr.cpp
+++ b/clang/lib/CodeGen/CGExpr.cpp
@@ -1140,7 +1140,7 @@ llvm::Value *CodeGenFunction::EmitLoadOfScalar(llvm::Value *Addr, bool Volatile,
LValue lvalue = LValue::MakeAddr(Addr, Ty,
CharUnits::fromQuantity(Alignment),
getContext(), TBAAInfo);
- return EmitAtomicLoad(lvalue, Loc).getScalarVal();
+ return EmitFromMemory(EmitAtomicLoad(lvalue, Loc).getScalarVal(), Ty);
}
llvm::LoadInst *Load = Builder.CreateLoad(Addr);
OpenPOWER on IntegriCloud