[Clang][Cygwin] Use correct mangling rule (#158404)
In
45ca613c13,
whether to mangle names based on calling conventions according to
Microsoft conventions was refactored to a bool in the TargetInfo. Cygwin
targets also require this mangling, but were missed, presumably due to
lack of test coverage of these targets. This commit enables the name
mangling for Cygwin, and also enables test coverage of this mangling on
Cygwin targets.
This commit is contained in:
parent
bf156a2087
commit
4abcbb053f
@ -646,6 +646,7 @@ public:
|
||||
: X86_32TargetInfo(Triple, Opts) {
|
||||
this->WCharType = TargetInfo::UnsignedShort;
|
||||
this->WIntType = TargetInfo::UnsignedInt;
|
||||
this->UseMicrosoftManglingForC = true;
|
||||
DoubleAlign = LongLongAlign = 64;
|
||||
resetDataLayout("e-m:x-p:32:32-p270:32:32-p271:32:32-p272:64:64-i64:64-"
|
||||
"i128:128-f80:32-n8:16:32-a:0:32-S32",
|
||||
@ -983,6 +984,7 @@ public:
|
||||
: X86_64TargetInfo(Triple, Opts) {
|
||||
this->WCharType = TargetInfo::UnsignedShort;
|
||||
this->WIntType = TargetInfo::UnsignedInt;
|
||||
this->UseMicrosoftManglingForC = true;
|
||||
}
|
||||
|
||||
void getTargetDefines(const LangOptions &Opts,
|
||||
|
||||
@ -1,8 +1,10 @@
|
||||
// RUN: %clang_cc1 -emit-llvm %s -o - -triple=i386-pc-win32 | FileCheck %s
|
||||
// RUN: %clang_cc1 -emit-llvm %s -o - -triple=i386-mingw32 | FileCheck %s
|
||||
// RUN: %clang_cc1 -emit-llvm %s -o - -triple=i386-mingw32 | FileCheck %s
|
||||
// RUN: %clang_cc1 -emit-llvm %s -o - -triple=i386-cygwin | FileCheck %s
|
||||
// RUN: %clang_cc1 -emit-llvm %s -o - -triple=i386-pc-windows-msvc-elf | FileCheck %s --check-prefix=ELF32
|
||||
// RUN: %clang_cc1 -emit-llvm %s -o - -triple=x86_64-pc-win32 | FileCheck %s --check-prefix=X64
|
||||
// RUN: %clang_cc1 -emit-llvm %s -o - -triple=x86_64-mingw32 | FileCheck %s --check-prefix=X64
|
||||
// RUN: %clang_cc1 -emit-llvm %s -o - -triple=x86_64-mingw32 | FileCheck %s --check-prefix=X64
|
||||
// RUN: %clang_cc1 -emit-llvm %s -o - -triple=x86_64-cygwin | FileCheck %s --check-prefix=X64
|
||||
// RUN: %clang_cc1 -emit-llvm %s -o - -triple=x86_64-pc-windows-msvc-elf | FileCheck %s --check-prefix=ELF64
|
||||
|
||||
// CHECK: target datalayout = "e-m:x-{{.*}}"
|
||||
|
||||
@ -4,6 +4,9 @@
|
||||
// RUN: %clang_cc1 -emit-llvm %s -o - -triple=i386-mingw32 | \
|
||||
// RUN: FileCheck --check-prefix=ITANIUM %s
|
||||
|
||||
// RUN: %clang_cc1 -emit-llvm %s -o - -triple=i386-cygwin | \
|
||||
// RUN: FileCheck --check-prefix=ITANIUM %s
|
||||
|
||||
void __stdcall f1(void) {}
|
||||
// WIN: define dso_local x86_stdcallcc void @"?f1@@YGXXZ"
|
||||
// ITANIUM: define dso_local x86_stdcallcc void @"\01__Z2f1v@0"
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user