Skip to content

Commit

Permalink
[AIX] Also error on -G for link-only step
Browse files Browse the repository at this point in the history
Error on -G on AIX for all modes(preprocess, assemble, compile, link).

Differential Revision: https://reviews.llvm.org/D90063
  • Loading branch information
xling-liao committed Oct 26, 2020
1 parent 5a6e66e commit 3d4aebb
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 8 deletions.
8 changes: 7 additions & 1 deletion clang/lib/Driver/Driver.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3888,9 +3888,15 @@ void Driver::BuildJobs(Compilation &C) const {
}
}

const llvm::Triple &RawTriple = C.getDefaultToolChain().getTriple();
if (RawTriple.isOSAIX())
if (Arg *A = C.getArgs().getLastArg(options::OPT_G))
Diag(diag::err_drv_unsupported_opt_for_target)
<< A->getSpelling() << RawTriple.str();

// Collect the list of architectures.
llvm::StringSet<> ArchNames;
if (C.getDefaultToolChain().getTriple().isOSBinFormatMachO())
if (RawTriple.isOSBinFormatMachO())
for (const Arg *A : C.getArgs())
if (A->getOption().matches(options::OPT_arch))
ArchNames.insert(A->getValue());
Expand Down
5 changes: 0 additions & 5 deletions clang/lib/Driver/ToolChains/Clang.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -4958,11 +4958,6 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
if (D.CCGenDiagnostics)
CmdArgs.push_back("-disable-pragma-debug-crash");

if (RawTriple.isOSAIX())
if (Arg *A = Args.getLastArg(options::OPT_G))
D.Diag(diag::err_drv_unsupported_opt_for_target)
<< A->getSpelling() << RawTriple.str();

bool UseSeparateSections = isUseSeparateSections(Triple);

if (Args.hasFlag(options::OPT_ffunction_sections,
Expand Down
25 changes: 23 additions & 2 deletions clang/test/Driver/aix-err-options.c
Original file line number Diff line number Diff line change
@@ -1,7 +1,28 @@
// RUN: %clang -target powerpc32-ibm-aix-xcoff -### -S -emit-llvm -G 0 2>&1 %s | \
// RUN: %clang -target powerpc-ibm-aix-xcoff -### -E -G 0 2>&1 %s | \
// RUN: FileCheck --check-prefix=CHECK32 %s
// RUN: %clang -target powerpc-ibm-aix-xcoff -### -S -emit-llvm -G 0 2>&1 %s | \
// RUN: FileCheck --check-prefix=CHECK32 %s
// RUN: %clang -target powerpc-ibm-aix-xcoff -### -c -G 0 2>&1 %s | \
// RUN: FileCheck --check-prefix=CHECK32 %s
// RUN: %clang -target powerpc-ibm-aix-xcoff -### -c \
// RUN: %S/Inputs/aix_ppc_tree/dummy0.s -G 0 2>&1 | \
// RUN: FileCheck --check-prefix=CHECK32 %s
// RUN: %clang -target powerpc-ibm-aix-xcoff -### -o dummy.so \
// RUN: %S/Inputs/aix_ppc_tree/dummy0.o -G 0 2>&1 | \
// RUN: FileCheck --check-prefix=CHECK32 %s

// RUN: %clang -target powerpc64-ibm-aix-xcoff -### -E -G 0 2>&1 %s | \
// RUN: FileCheck --check-prefix=CHECK64 %s
// RUN: %clang -target powerpc64-ibm-aix-xcoff -### -S -emit-llvm -G 0 2>&1 %s | \
// RUN: FileCheck --check-prefix=CHECK64 %s
// RUN: %clang -target powerpc64-ibm-aix-xcoff -### -c -G 0 2>&1 %s | \
// RUN: FileCheck --check-prefix=CHECK64 %s
// RUN: %clang -target powerpc64-ibm-aix-xcoff -### -c \
// RUN: %S/Inputs/aix_ppc_tree/dummy0.s -G 0 2>&1 | \
// RUN: FileCheck --check-prefix=CHECK64 %s
// RUN: %clang -target powerpc64-ibm-aix-xcoff -### -o dummy.so \
// RUN: %S/Inputs/aix_ppc_tree/dummy0.o -G 0 2>&1 | \
// RUN: FileCheck --check-prefix=CHECK64 %s

// CHECK32: error: unsupported option '-G' for target 'powerpc32-ibm-aix-xcoff'
// CHECK32: error: unsupported option '-G' for target 'powerpc-ibm-aix-xcoff'
// CHECK64: error: unsupported option '-G' for target 'powerpc64-ibm-aix-xcoff'

0 comments on commit 3d4aebb

Please sign in to comment.