summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--clang/lib/CodeGen/CGExpr.cpp4
-rw-r--r--clang/test/CodeGen/named_reg_global.c4
2 files changed, 5 insertions, 3 deletions
diff --git a/clang/lib/CodeGen/CGExpr.cpp b/clang/lib/CodeGen/CGExpr.cpp
index 4822769f392..2025f39355e 100644
--- a/clang/lib/CodeGen/CGExpr.cpp
+++ b/clang/lib/CodeGen/CGExpr.cpp
@@ -1780,7 +1780,9 @@ static LValue EmitGlobalNamedRegister(const VarDecl *VD,
CharUnits Alignment) {
AsmLabelAttr *Asm = VD->getAttr<AsmLabelAttr>();
llvm::Twine Name("llvm.named.register."+Asm->getLabel());
- llvm::NamedMDNode *M = CGM.getModule().getOrInsertNamedMetadata(Name.str());
+ SmallString<256> DummyVec;
+ llvm::NamedMDNode *M =
+ CGM.getModule().getOrInsertNamedMetadata(Name.toStringRef(DummyVec));
if (M->getNumOperands() == 0) {
llvm::MDString *Str = llvm::MDString::get(CGM.getLLVMContext(),
Asm->getLabel());
diff --git a/clang/test/CodeGen/named_reg_global.c b/clang/test/CodeGen/named_reg_global.c
index 0a4646f7bdb..38b1828fc5e 100644
--- a/clang/test/CodeGen/named_reg_global.c
+++ b/clang/test/CodeGen/named_reg_global.c
@@ -13,8 +13,8 @@ unsigned long get_stack_pointer_addr() {
}
// CHECK: declare{{.*}} i[[bits]] @llvm.read_register.i[[bits]](metadata)
-// CHECK: define{{.*}} void @set_stack_pointer_addr(i[[bits]] %addr) #0 {
-// CHECK: [[sto:%[0-9]+]] = load i[[bits]]* %addr
+// CHECK: define{{.*}} void @set_stack_pointer_addr(i[[bits]] %[[addr:[0-9a-z]+]]) #0 {
+// CHECK: [[sto:%[0-9]+]] = load i[[bits]]* %[[addr]]
// CHECK: call void @llvm.write_register.i[[bits]](metadata !0, i[[bits]] [[sto]])
// CHECK: ret void
void set_stack_pointer_addr(unsigned long addr) {
OpenPOWER on IntegriCloud