r240902 - [Driver] x86-64 Windows is always PIC

David Majnemer david.majnemer at gmail.com
Sat Jun 27 21:23:33 PDT 2015


Author: majnemer
Date: Sat Jun 27 23:23:33 2015
New Revision: 240902

URL: http://llvm.org/viewvc/llvm-project?rev=240902&view=rev
Log:
[Driver] x86-64 Windows is always PIC

This fixes PR23963.

Modified:
    cfe/trunk/lib/Driver/ToolChains.cpp
    cfe/trunk/test/Driver/pic.c

Modified: cfe/trunk/lib/Driver/ToolChains.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/ToolChains.cpp?rev=240902&r1=240901&r2=240902&view=diff
==============================================================================
--- cfe/trunk/lib/Driver/ToolChains.cpp (original)
+++ cfe/trunk/lib/Driver/ToolChains.cpp Sat Jun 27 23:23:33 2015
@@ -2021,11 +2021,15 @@ bool Generic_GCC::IsUnwindTablesDefault(
   return getArch() == llvm::Triple::x86_64;
 }
 
-bool Generic_GCC::isPICDefault() const { return false; }
+bool Generic_GCC::isPICDefault() const {
+  return getArch() == llvm::Triple::x86_64 && getTriple().isOSWindows();
+}
 
 bool Generic_GCC::isPIEDefault() const { return false; }
 
-bool Generic_GCC::isPICDefaultForced() const { return false; }
+bool Generic_GCC::isPICDefaultForced() const {
+  return getArch() == llvm::Triple::x86_64 && getTriple().isOSWindows();
+}
 
 bool Generic_GCC::IsIntegratedAssemblerDefault() const {
   switch (getTriple().getArch()) {

Modified: cfe/trunk/test/Driver/pic.c
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/pic.c?rev=240902&r1=240901&r2=240902&view=diff
==============================================================================
--- cfe/trunk/test/Driver/pic.c (original)
+++ cfe/trunk/test/Driver/pic.c Sat Jun 27 23:23:33 2015
@@ -242,3 +242,9 @@
 // RUN:   | FileCheck %s --check-prefix=CHECK-PIC1
 // RUN: %clang -c %s -target arm64-linux-android -### 2>&1 \
 // RUN:   | FileCheck %s --check-prefix=CHECK-PIC1
+//
+// On Windows-X64 PIC is enabled by default
+// RUN: %clang -c %s -target x86_64-pc-windows-msvc18.0.0 -### 2>&1 \
+// RUN:   | FileCheck %s --check-prefix=CHECK-PIC2
+// RUN: %clang -c %s -target x86_64-pc-windows-gnu -### 2>&1 \
+// RUN:   | FileCheck %s --check-prefix=CHECK-PIC2





More information about the cfe-commits mailing list