]> granicus.if.org Git - clang/commitdiff
Set Module Metadata "RtLibUseGOT" when fno-plt is used.
authorSriraman Tallam <tmsriram@google.com>
Fri, 23 Feb 2018 21:27:33 +0000 (21:27 +0000)
committerSriraman Tallam <tmsriram@google.com>
Fri, 23 Feb 2018 21:27:33 +0000 (21:27 +0000)
Differential Revision: https://reviews.llvm.org/D42217

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@325961 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/CodeGenModule.cpp
test/CodeGen/noplt.c

index 03bf2169157f0efd99eed0c76902b37c1f66fb08..588d001111d527c200a3c104bb62ac0a2595962d 100644 (file)
@@ -555,6 +555,9 @@ void CodeGenModule::Release() {
       getModule().setPIELevel(static_cast<llvm::PIELevel::Level>(PLevel));
   }
 
+  if (CodeGenOpts.NoPLT)
+    getModule().setRtLibUseGOT();
+
   SimplifyPersonality();
 
   if (getCodeGenOpts().EmitDeclMetadata)
index f467199efab2db2753545c25024b6c943aa4616c..20e2e07b0fd4ad7e99514fdf8a41de94dd31d397 100644 (file)
@@ -1,7 +1,8 @@
-// RUN: %clang_cc1 -emit-llvm -fno-plt %s -o - | FileCheck %s -check-prefix=CHECK-NOPLT
+// RUN: %clang_cc1 -emit-llvm -fno-plt %s -o - | FileCheck %s -check-prefix=CHECK-NOPLT -check-prefix=CHECK-NOPLT-METADATA
 
 // CHECK-NOPLT: Function Attrs: nonlazybind
 // CHECK-NOPLT-NEXT: declare {{.*}}i32 @foo
+// CHECK-NOPLT-METADATA: !"RtLibUseGOT"
 int foo();
 
 int bar() {