Skip to content

Commit

Permalink
[clang] [Windows] Mark PIC as implicitly enabled for aarch64, just li…
Browse files Browse the repository at this point in the history
…ke for x86_64

This doesn't practically affect the code generation.

Differential Revision: https://reviews.llvm.org/D111707
  • Loading branch information
mstorsjo committed Oct 13, 2021
1 parent bde89ac commit b541845
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 5 deletions.
6 changes: 4 additions & 2 deletions clang/lib/Driver/ToolChains/MSVC.cpp
Expand Up @@ -795,15 +795,17 @@ bool MSVCToolChain::IsUnwindTablesDefault(const ArgList &Args) const {
}

bool MSVCToolChain::isPICDefault() const {
return getArch() == llvm::Triple::x86_64;
return getArch() == llvm::Triple::x86_64 ||
getArch() == llvm::Triple::aarch64;
}

bool MSVCToolChain::isPIEDefault() const {
return false;
}

bool MSVCToolChain::isPICDefaultForced() const {
return getArch() == llvm::Triple::x86_64;
return getArch() == llvm::Triple::x86_64 ||
getArch() == llvm::Triple::aarch64;
}

void MSVCToolChain::AddCudaIncludeArgs(const ArgList &DriverArgs,
Expand Down
6 changes: 4 additions & 2 deletions clang/lib/Driver/ToolChains/MinGW.cpp
Expand Up @@ -474,13 +474,15 @@ bool toolchains::MinGW::IsUnwindTablesDefault(const ArgList &Args) const {
}

bool toolchains::MinGW::isPICDefault() const {
return getArch() == llvm::Triple::x86_64;
return getArch() == llvm::Triple::x86_64 ||
getArch() == llvm::Triple::aarch64;
}

bool toolchains::MinGW::isPIEDefault() const { return false; }

bool toolchains::MinGW::isPICDefaultForced() const {
return getArch() == llvm::Triple::x86_64;
return getArch() == llvm::Triple::x86_64 ||
getArch() == llvm::Triple::aarch64;
}

llvm::ExceptionHandling
Expand Down
6 changes: 5 additions & 1 deletion clang/test/Driver/pic.c
Expand Up @@ -314,8 +314,12 @@
// RUN: %clang -c %s -target aarch64-linux-android24 -fno-PIE -### 2>&1 \
// RUN: | FileCheck %s --check-prefix=CHECK-NO-PIC
//
// On Windows-X64 PIC is enabled by default
// On Windows x86_64 and aarch64 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
// RUN: %clang -c %s -target aarch64-windows-msvc -### 2>&1 \
// RUN: | FileCheck %s --check-prefix=CHECK-PIC2
// RUN: %clang -c %s -target aarch64-windows-gnu -### 2>&1 \
// RUN: | FileCheck %s --check-prefix=CHECK-PIC2

0 comments on commit b541845

Please sign in to comment.