Skip to content
Snippets Groups Projects
Commit 6d984eb5 authored by Rafael Espindola's avatar Rafael Espindola
Browse files

Override the datalayout in a module with -triple.

This matches llc's behavior.

Before this patch clang would create a TargetInfo base on -triple but a llvm
CodeGen based on the triple in the module.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@197837 91177308-0d34-0410-b5e6-96231b3b80d8
parent 97679f3c
No related branches found
No related tags found
No related merge requests found
...@@ -419,9 +419,18 @@ void CodeGenAction::ExecuteAction() { ...@@ -419,9 +419,18 @@ void CodeGenAction::ExecuteAction() {
CI.getDiagnostics().Report(Loc, DiagID); CI.getDiagnostics().Report(Loc, DiagID);
return; return;
} }
const TargetOptions &TargetOpts = CI.getTargetOpts();
if (TheModule->getTargetTriple() != TargetOpts.Triple) {
unsigned DiagID = CI.getDiagnostics().getCustomDiagID(
DiagnosticsEngine::Warning,
"overriding the module target triple with %0");
CI.getDiagnostics().Report(SourceLocation(), DiagID) << TargetOpts.Triple;
TheModule->setTargetTriple(TargetOpts.Triple);
}
EmitBackendOutput(CI.getDiagnostics(), CI.getCodeGenOpts(), EmitBackendOutput(CI.getDiagnostics(), CI.getCodeGenOpts(),
CI.getTargetOpts(), CI.getLangOpts(), TargetOpts, CI.getLangOpts(),
TheModule.get(), TheModule.get(),
BA, OS); BA, OS);
return; return;
......
; REQUIRES: x86-registered-target ; REQUIRES: x86-registered-target
; RUN: %clang_cc1 -S -o - %s | FileCheck %s ; RUN: %clang_cc1 -triple x86_64-apple-darwin10 -S -o - %s | FileCheck %s
; RUN: %clang_cc1 -triple x86_64-pc-linux -S -o %t %s 2>&1 | \
; RUN: FileCheck --check-prefix=WARN %s
; WARN: warning: overriding the module target triple with x86_64-pc-linux
; RUN: FileCheck --check-prefix=LINUX %s < %t
target triple = "x86_64-apple-darwin10" target triple = "x86_64-apple-darwin10"
; CHECK: .globl _f0 ; CHECK: .globl _f0
; LINUX: .globl f0
define i32 @f0() nounwind ssp { define i32 @f0() nounwind ssp {
ret i32 0 ret i32 0
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment