forked from OSchip/llvm-project
[Clang][MinGW][cygwin] Fix __declspec with -fdeclspec enabled
Fixes https://github.com/llvm/llvm-project/issues/49958 Reviewed By: rnk Differential Revision: https://reviews.llvm.org/D135027
This commit is contained in:
parent
0ce4f57052
commit
d90633a74b
|
@ -81,9 +81,10 @@ void defineCPUMacros(MacroBuilder &Builder, StringRef CPUName, bool Tuning) {
|
|||
|
||||
void addCygMingDefines(const LangOptions &Opts, MacroBuilder &Builder) {
|
||||
// Mingw and cygwin define __declspec(a) to __attribute__((a)). Clang
|
||||
// supports __declspec natively under -fms-extensions, but we define a no-op
|
||||
// __declspec macro anyway for pre-processor compatibility.
|
||||
if (Opts.MicrosoftExt)
|
||||
// supports __declspec natively under -fdeclspec (also enabled with
|
||||
// -fms-extensions), but we define a no-op __declspec macro anyway for
|
||||
// pre-processor compatibility.
|
||||
if (Opts.DeclSpecKeyword)
|
||||
Builder.defineMacro("__declspec", "__declspec");
|
||||
else
|
||||
Builder.defineMacro("__declspec(a)", "__attribute__((a))");
|
||||
|
|
|
@ -587,11 +587,15 @@
|
|||
// I386-NETBSD:#define __i386__ 1
|
||||
// I386-NETBSD:#define i386 1
|
||||
|
||||
// RUN: %clang_cc1 -E -dM -triple=i686-pc-mingw32 < /dev/null | FileCheck -match-full-lines -check-prefix I386-DECLSPEC %s
|
||||
// RUN: %clang_cc1 -E -dM -fms-extensions -triple=i686-pc-mingw32 < /dev/null | FileCheck -match-full-lines -check-prefix I386-DECLSPEC %s
|
||||
// RUN: %clang_cc1 -E -dM -triple=i686-unknown-cygwin < /dev/null | FileCheck -match-full-lines -check-prefix I386-DECLSPEC %s
|
||||
// RUN: %clang_cc1 -E -dM -fms-extensions -triple=i686-unknown-cygwin < /dev/null | FileCheck -match-full-lines -check-prefix I386-DECLSPEC %s
|
||||
// I386-DECLSPEC: #define __declspec{{.*}}
|
||||
// RUN: %clang_cc1 -E -dM -triple=i686-pc-mingw32 < /dev/null | FileCheck -match-full-lines -check-prefix I386-DECLSPEC-GNU %s
|
||||
// RUN: %clang_cc1 -E -dM -triple=i686-unknown-cygwin < /dev/null | FileCheck -match-full-lines -check-prefix I386-DECLSPEC-GNU %s
|
||||
// I386-DECLSPEC-GNU: #define __declspec{{.*}} __attribute__{{.*}}
|
||||
|
||||
// RUN: %clang_cc1 -E -dM -fms-extensions -triple=i686-pc-mingw32 < /dev/null | FileCheck -match-full-lines -check-prefix I386-DECLSPEC-MS %s
|
||||
// RUN: %clang_cc1 -E -dM -fdeclspec -triple=i686-pc-mingw32 < /dev/null | FileCheck -match-full-lines -check-prefix I386-DECLSPEC-MS %s
|
||||
// RUN: %clang_cc1 -E -dM -fms-extensions -triple=i686-unknown-cygwin < /dev/null | FileCheck -match-full-lines -check-prefix I386-DECLSPEC-MS %s
|
||||
// RUN: %clang_cc1 -E -dM -fdeclspec -triple=i686-unknown-cygwin < /dev/null | FileCheck -match-full-lines -check-prefix I386-DECLSPEC-MS %s
|
||||
// I386-DECLSPEC-MS: #define __declspec{{.*}} __declspec{{.*}}
|
||||
|
||||
//
|
||||
// RUN: %clang_cc1 -E -dM -ffreestanding -fgnuc-version=4.2.1 -triple=x86_64-none-none < /dev/null | FileCheck -match-full-lines -check-prefix X86_64 %s
|
||||
|
|
|
@ -1368,9 +1368,12 @@
|
|||
// RUN: %clang_cc1 -x c++ -E -dM -ffreestanding -triple=x86_64-sie-ps5 < /dev/null | FileCheck --match-full-lines --check-prefix PS4-CXX %s
|
||||
// PS4-CXX:#define __STDCPP_DEFAULT_NEW_ALIGNMENT__ 32UL
|
||||
//
|
||||
// RUN: %clang_cc1 -E -dM -triple=x86_64-pc-mingw32 < /dev/null | FileCheck -match-full-lines -check-prefix X86-64-DECLSPEC %s
|
||||
// RUN: %clang_cc1 -E -dM -fms-extensions -triple=x86_64-unknown-mingw32 < /dev/null | FileCheck -match-full-lines -check-prefix X86-64-DECLSPEC %s
|
||||
// X86-64-DECLSPEC: #define __declspec{{.*}}
|
||||
// RUN: %clang_cc1 -E -dM -triple=x86_64-pc-mingw32 < /dev/null | FileCheck -match-full-lines -check-prefix X86-64-DECLSPEC-GNU %s
|
||||
// X86-64-DECLSPEC-GNU: #define __declspec{{.*}} __attribute__{{.*}}
|
||||
//
|
||||
// RUN: %clang_cc1 -E -dM -fms-extensions -triple=x86_64-unknown-mingw32 < /dev/null | FileCheck -match-full-lines -check-prefix X86-64-DECLSPEC-MS %s
|
||||
// RUN: %clang_cc1 -E -dM -fdeclspec -triple=x86_64-unknown-mingw32 < /dev/null | FileCheck -match-full-lines -check-prefix X86-64-DECLSPEC-MS %s
|
||||
// X86-64-DECLSPEC-MS: #define __declspec{{.*}} __declspec{{.*}}
|
||||
//
|
||||
// RUN: %clang_cc1 -E -dM -ffreestanding -triple=sparc64-none-none < /dev/null | FileCheck -match-full-lines -check-prefix SPARCV9 %s
|
||||
// SPARCV9:#define __BIGGEST_ALIGNMENT__ 16
|
||||
|
|
Loading…
Reference in New Issue