From 00db547f97dd4b2d355b569cd6069f8d303fc560 Mon Sep 17 00:00:00 2001 From: James Y Knight Date: Mon, 11 Apr 2016 22:52:42 +0000 Subject: [PATCH] Fix compile with GCC after r266002 (Add __atomic_* lowering to AtomicExpandPass) It doesn't like implicitly calling the ArrayRef constructor with a returned array -- it appears to decays the returned value to a pointer, first, before trying to make an ArrayRef out of it. llvm-svn: 266011 --- llvm/lib/CodeGen/AtomicExpandPass.cpp | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/llvm/lib/CodeGen/AtomicExpandPass.cpp b/llvm/lib/CodeGen/AtomicExpandPass.cpp index a8003c6..3f84580 100644 --- a/llvm/lib/CodeGen/AtomicExpandPass.cpp +++ b/llvm/lib/CodeGen/AtomicExpandPass.cpp @@ -1065,25 +1065,25 @@ static ArrayRef GetRMWLibcall(AtomicRMWInst::BinOp Op) { case AtomicRMWInst::BAD_BINOP: llvm_unreachable("Should not have BAD_BINOP."); case AtomicRMWInst::Xchg: - return LibcallsXchg; + return ArrayRef(LibcallsXchg); case AtomicRMWInst::Add: - return LibcallsAdd; + return ArrayRef(LibcallsAdd); case AtomicRMWInst::Sub: - return LibcallsSub; + return ArrayRef(LibcallsSub); case AtomicRMWInst::And: - return LibcallsAnd; + return ArrayRef(LibcallsAnd); case AtomicRMWInst::Or: - return LibcallsOr; + return ArrayRef(LibcallsOr); case AtomicRMWInst::Xor: - return LibcallsXor; + return ArrayRef(LibcallsXor); case AtomicRMWInst::Nand: - return LibcallsNand; + return ArrayRef(LibcallsNand); case AtomicRMWInst::Max: case AtomicRMWInst::Min: case AtomicRMWInst::UMax: case AtomicRMWInst::UMin: // No atomic libcalls are available for max/min/umax/umin. - return {}; + return ArrayRef(); } llvm_unreachable("Unexpected AtomicRMW operation."); } -- 2.7.4