Please use GitHub pull requests for new patches. Avoid migrating existing patches. Phabricator shutdown timeline
Changeset View
Changeset View
Standalone View
Standalone View
clang/test/CodeGenCXX/dllimport.cpp
Show First 20 Lines • Show All 197 Lines • ▼ Show 20 Lines | |||||
USEVAR(VarTmpl<ExplicitSpec_Imported>) | USEVAR(VarTmpl<ExplicitSpec_Imported>) | ||||
//===----------------------------------------------------------------------===// | //===----------------------------------------------------------------------===// | ||||
// Functions | // Functions | ||||
//===----------------------------------------------------------------------===// | //===----------------------------------------------------------------------===// | ||||
// GNU-DAG: declare dso_local void @_ZdlPv(i8*) | // GNU-DAG: declare dso_local void @_ZdlPv{{j|y}}(i8*, i{{32|64}}) | ||||
// Import function declaration. | // Import function declaration. | ||||
// MSC-DAG: declare dllimport void @"?decl@@YAXXZ"() | // MSC-DAG: declare dllimport void @"?decl@@YAXXZ"() | ||||
// GNU-DAG: declare dllimport void @_Z4declv() | // GNU-DAG: declare dllimport void @_Z4declv() | ||||
__declspec(dllimport) void decl(); | __declspec(dllimport) void decl(); | ||||
USE(decl) | USE(decl) | ||||
// extern "C" | // extern "C" | ||||
▲ Show 20 Lines • Show All 136 Lines • ▼ Show 20 Lines | |||||
// MO1-DAG: declare dllimport i32* @"?ReferencingNonImportedDelete@@YAPAHXZ" | // MO1-DAG: declare dllimport i32* @"?ReferencingNonImportedDelete@@YAPAHXZ" | ||||
USE(ReferencingNonImportedNew) | USE(ReferencingNonImportedNew) | ||||
USE(ReferencingNonImportedDelete) | USE(ReferencingNonImportedDelete) | ||||
__declspec(dllimport) void* operator new[](__SIZE_TYPE__); | __declspec(dllimport) void* operator new[](__SIZE_TYPE__); | ||||
__declspec(dllimport) void operator delete(void*); | __declspec(dllimport) void operator delete(void*); | ||||
__declspec(dllimport) inline int *ReferencingImportedNew() { return new int[2]; } | __declspec(dllimport) inline int *ReferencingImportedNew() { return new int[2]; } | ||||
// MO1-DAG: define available_externally dllimport i32* @"?ReferencingImportedNew@@YAPAHXZ" | // MO1-DAG: define available_externally dllimport i32* @"?ReferencingImportedNew@@YAPAHXZ" | ||||
__declspec(dllimport) inline int *ReferencingImportedDelete() { delete (int*)nullptr; } | __declspec(dllimport) inline int *ReferencingImportedDelete() { delete (int*)nullptr; } | ||||
// MO1-DAG: define available_externally dllimport i32* @"?ReferencingImportedDelete@@YAPAHXZ" | // MO1-DAG: declare dllimport i32* @"?ReferencingImportedDelete@@YAPAHXZ" | ||||
USE(ReferencingImportedNew) | USE(ReferencingImportedNew) | ||||
USE(ReferencingImportedDelete) | USE(ReferencingImportedDelete) | ||||
struct ClassWithDtor { ~ClassWithDtor() {} }; | struct ClassWithDtor { ~ClassWithDtor() {} }; | ||||
struct __declspec(dllimport) ClassWithNonDllImportField { using X = ClassWithDtor; X t[2]; }; | struct __declspec(dllimport) ClassWithNonDllImportField { using X = ClassWithDtor; X t[2]; }; | ||||
struct __declspec(dllimport) ClassWithNonDllImportBase : public ClassWithDtor { }; | struct __declspec(dllimport) ClassWithNonDllImportBase : public ClassWithDtor { }; | ||||
USECLASS(ClassWithNonDllImportField); | USECLASS(ClassWithNonDllImportField); | ||||
USECLASS(ClassWithNonDllImportBase); | USECLASS(ClassWithNonDllImportBase); | ||||
// MO1-DAG: declare dllimport x86_thiscallcc void @"??1ClassWithNonDllImportBase@@QAE@XZ"(%struct.ClassWithNonDllImportBase* {{[^,]*}}) | // MO1-DAG: declare dllimport x86_thiscallcc void @"??1ClassWithNonDllImportBase@@QAE@XZ"(%struct.ClassWithNonDllImportBase* {{[^,]*}}) | ||||
▲ Show 20 Lines • Show All 661 Lines • Show Last 20 Lines |