mirror of
https://github.com/llvm/llvm-project.git
synced 2025-05-09 09:46:06 +00:00

If we construct an object in some arbitrary non-default addr space it should fail unless either: - There is an implicit conversion from the address space to default /generic address space. - There is a matching ctor qualified with an address space that is either exactly matching or convertible to the address space of an object. Differential Revision: https://reviews.llvm.org/D62156 llvm-svn: 363944
13 lines
564 B
C++
13 lines
564 B
C++
// RUN: %clang_cc1 %s -std=c++14 -triple=spir -emit-llvm -o - | FileCheck %s
|
|
// RUN: %clang_cc1 %s -std=c++17 -triple=spir -emit-llvm -o - | FileCheck %s
|
|
// XFAIL: *
|
|
|
|
// FIXME: We can't compile address space method qualifiers yet.
|
|
// Therefore there is no way to check correctness of this code.
|
|
struct MyType {
|
|
MyType(int i) __attribute__((address_space(10))) : i(i) {}
|
|
int i;
|
|
};
|
|
//CHECK: call void @_ZN6MyTypeC1Ei(%struct.MyType* addrspacecast (%struct.MyType addrspace(10)* @m to %struct.MyType*), i32 123)
|
|
MyType __attribute__((address_space(10))) m = 123;
|