mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2024-12-04 12:15:46 +00:00
[PS5] Allow dllimport/dllexport same as PS4
This commit is contained in:
parent
8f70d16c9a
commit
634c8ef69a
@ -1195,12 +1195,12 @@ public:
|
||||
/// Microsoft C++ code using dllimport/export attributes?
|
||||
virtual bool shouldDLLImportComdatSymbols() const {
|
||||
return getTriple().isWindowsMSVCEnvironment() ||
|
||||
getTriple().isWindowsItaniumEnvironment() || getTriple().isPS4();
|
||||
getTriple().isWindowsItaniumEnvironment() || getTriple().isPS();
|
||||
}
|
||||
|
||||
// Does this target have PS4 specific dllimport/export handling?
|
||||
virtual bool hasPS4DLLImportExport() const {
|
||||
return getTriple().isPS4() ||
|
||||
return getTriple().isPS() ||
|
||||
// Windows Itanium support allows for testing the SCEI flavour of
|
||||
// dllimport/export handling on a Windows system.
|
||||
(getTriple().isWindowsItaniumEnvironment() &&
|
||||
|
@ -9760,7 +9760,7 @@ DeclResult Sema::ActOnExplicitInstantiation(
|
||||
|
||||
if (!getDLLAttr(Def) && getDLLAttr(Specialization) &&
|
||||
(Context.getTargetInfo().shouldDLLImportComdatSymbols() &&
|
||||
!Context.getTargetInfo().getTriple().isPS4())) {
|
||||
!Context.getTargetInfo().getTriple().isPS())) {
|
||||
// An explicit instantiation definition can add a dll attribute to a
|
||||
// template with a previous instantiation declaration. MinGW doesn't
|
||||
// allow this.
|
||||
@ -9778,7 +9778,7 @@ DeclResult Sema::ActOnExplicitInstantiation(
|
||||
!PreviouslyDLLExported && Specialization->hasAttr<DLLExportAttr>();
|
||||
if (Old_TSK == TSK_ImplicitInstantiation && NewlyDLLExported &&
|
||||
(Context.getTargetInfo().shouldDLLImportComdatSymbols() &&
|
||||
!Context.getTargetInfo().getTriple().isPS4())) {
|
||||
!Context.getTargetInfo().getTriple().isPS())) {
|
||||
// An explicit instantiation definition can add a dll attribute to a
|
||||
// template with a previous implicit instantiation. MinGW doesn't allow
|
||||
// this. We limit clang to only adding dllexport, to avoid potentially
|
||||
|
@ -1,9 +1,5 @@
|
||||
// RUN: %clang_cc1 \
|
||||
// RUN: -triple x86_64-scei-ps4 \
|
||||
// RUN: -fdeclspec \
|
||||
// RUN: -Werror \
|
||||
// RUN: -emit-llvm %s -o - | \
|
||||
// RUN: FileCheck %s
|
||||
// RUN: %clang_cc1 -triple x86_64-scei-ps4 -fdeclspec -Werror -emit-llvm %s -o - | FileCheck %s
|
||||
// RUN: %clang_cc1 -triple x86_64-sie-ps5 -fdeclspec -Werror -emit-llvm %s -o - | FileCheck %s
|
||||
|
||||
__declspec(dllexport) int export_int;
|
||||
|
||||
|
@ -1,6 +1,7 @@
|
||||
// RUN: %clang_cc1 -triple x86_64-windows-gnu -fdeclspec -emit-llvm -o - %s | FileCheck %s -DDSO_ATTRS="dso_local dllexport"
|
||||
// RUN: %clang_cc1 -triple x86_64-windows-itanium -fdeclspec -emit-llvm -o - %s | FileCheck %s -DDSO_ATTRS="dso_local dllexport"
|
||||
// RUN: %clang_cc1 -triple x86_64-scei-ps4 -fdeclspec -emit-llvm -o - %s | FileCheck %s -DDSO_ATTRS=dllexport
|
||||
// RUN: %clang_cc1 -triple x86_64-sie-ps5 -fdeclspec -emit-llvm -o - %s | FileCheck %s -DDSO_ATTRS=dllexport
|
||||
|
||||
struct __declspec(dllexport) A {
|
||||
virtual void m();
|
||||
|
@ -39,6 +39,7 @@
|
||||
// RUN: %clang_cc1 -no-opaque-pointers -I%S -fdeclspec -triple x86_64-unknown-windows-itanium -emit-llvm -o - %s -fhalf-no-semantic-interposition | FileCheck %s -check-prefix=WI
|
||||
// RUN: %clang_cc1 -no-opaque-pointers -I%S -fdeclspec -triple x86_64-scei-windows-itanium -emit-llvm -o - %s -fhalf-no-semantic-interposition | FileCheck %s --check-prefixes=PS4,SCEI_WI
|
||||
// RUN: %clang_cc1 -no-opaque-pointers -I%S -fdeclspec -triple x86_64-scei-ps4 -emit-llvm -o - %s -fhalf-no-semantic-interposition | FileCheck %s --check-prefixes=PS4,SCEI_PS4
|
||||
// RUN: %clang_cc1 -no-opaque-pointers -I%S -fdeclspec -triple x86_64-sie-ps5 -emit-llvm -o - %s -fhalf-no-semantic-interposition | FileCheck %s --check-prefixes=PS4,SCEI_PS4
|
||||
|
||||
#include <typeinfo>
|
||||
|
||||
|
@ -1,6 +1,7 @@
|
||||
// RUN: %clang_cc1 -std=c++11 -triple i686-windows -fdeclspec -emit-llvm %s -o - | FileCheck %s -check-prefix CHECK-MS
|
||||
// RUN: %clang_cc1 -std=c++11 -triple i686-windows-itanium -fdeclspec -emit-llvm %s -o - | FileCheck %s -check-prefix CHECK-IA
|
||||
// RUN: %clang_cc1 -std=c++11 -triple x86_64-scei-ps4 -fdeclspec -emit-llvm %s -o - | FileCheck %s -check-prefix CHECK-PS4
|
||||
// RUN: %clang_cc1 -std=c++11 -triple x86_64-sie-ps5 -fdeclspec -emit-llvm %s -o - | FileCheck %s -check-prefix CHECK-PS4
|
||||
|
||||
template <typename>
|
||||
struct s {};
|
||||
|
@ -1,5 +1,6 @@
|
||||
// RUN: %clang_cc1 -emit-llvm -triple i686-windows-itanium -fdeclspec %s -o - | FileCheck %s --check-prefixes=CHECK,WI
|
||||
// RUN: %clang_cc1 -emit-llvm -triple x86_64-scei-ps4 -fdeclspec %s -o - | FileCheck %s --check-prefixes=CHECK,PS4
|
||||
// RUN: %clang_cc1 -emit-llvm -triple x86_64-sie-ps5 -fdeclspec %s -o - | FileCheck %s --check-prefixes=CHECK,PS4
|
||||
|
||||
#define JOIN2(x, y) x##y
|
||||
#define JOIN(x, y) JOIN2(x, y)
|
||||
|
@ -7,6 +7,7 @@
|
||||
// RUN: %clang_cc1 -triple x86_64-windows-itanium -fsyntax-only -fms-extensions -verify -std=c11 -DWI %s
|
||||
// RUN: %clang_cc1 -triple x86_64-scei-ps4 -fsyntax-only -fms-extensions -verify -std=c11 -DWI %s
|
||||
// RUN: %clang_cc1 -triple x86_64-scei-ps4 -fsyntax-only -fms-extensions -verify -std=c99 -DWI %s
|
||||
// RUN: %clang_cc1 -triple x86_64-sie-ps5 -fsyntax-only -fms-extensions -verify -std=c11 -DWI %s
|
||||
|
||||
// Invalid usage.
|
||||
__declspec(dllimport) typedef int typedef1;
|
||||
|
@ -5,6 +5,7 @@
|
||||
// RUN: %clang_cc1 -triple i686-windows-itanium -fsyntax-only -fms-extensions -verify -std=c++11 -Wunsupported-dll-base-class-template -DWI %s
|
||||
// RUN: %clang_cc1 -triple x86_64-windows-itanium -fsyntax-only -fms-extensions -verify -std=c++1y -Wunsupported-dll-base-class-template -DWI %s
|
||||
// RUN: %clang_cc1 -triple x86_64-scei-ps4 -fsyntax-only -fdeclspec -verify -std=c++1y -Wunsupported-dll-base-class-template -DWI %s
|
||||
// RUN: %clang_cc1 -triple x86_64-sie-ps5 -fsyntax-only -fdeclspec -verify -std=c++1y -Wunsupported-dll-base-class-template -DWI %s
|
||||
|
||||
// Helper structs to make templates more expressive.
|
||||
struct ImplicitInst_Exported {};
|
||||
|
@ -7,6 +7,7 @@
|
||||
// RUN: %clang_cc1 -triple x86_64-windows-itanium -fsyntax-only -fms-extensions -verify -std=c++17 -Wunsupported-dll-base-class-template -DWI %s
|
||||
// RUN: %clang_cc1 -triple x86_64-scei-ps4 -fsyntax-only -fdeclspec -verify -std=c++11 -Wunsupported-dll-base-class-template -DWI %s
|
||||
// RUN: %clang_cc1 -triple x86_64-scei-ps4 -fsyntax-only -fdeclspec -verify -std=c++17 -Wunsupported-dll-base-class-template -DWI %s
|
||||
// RUN: %clang_cc1 -triple x86_64-sie-ps5 -fsyntax-only -fdeclspec -verify -std=c++17 -Wunsupported-dll-base-class-template -DWI %s
|
||||
|
||||
// Helper structs to make templates more expressive.
|
||||
struct ImplicitInst_Imported {};
|
||||
|
@ -928,7 +928,7 @@ public:
|
||||
}
|
||||
|
||||
/// Tests if the environment supports dllimport/export annotations.
|
||||
bool hasDLLImportExport() const { return isOSWindows() || isPS4(); }
|
||||
bool hasDLLImportExport() const { return isOSWindows() || isPS(); }
|
||||
|
||||
/// @}
|
||||
/// @name Mutators
|
||||
|
Loading…
Reference in New Issue
Block a user