mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-25 02:46:11 +00:00

variables emitted on both host and device side with different addresses when ODR-used by host function should not cause device side counter-part to be force emitted. This fixes the regression caused by https://reviews.llvm.org/D102237 Reviewed by: Artem Belevich Differential Revision: https://reviews.llvm.org/D102801
33 lines
1.1 KiB
Plaintext
33 lines
1.1 KiB
Plaintext
// RUN: %clang_cc1 -std=c++14 -ast-dump -x hip %s | FileCheck -check-prefixes=CHECK,HOST %s
|
|
// RUN: %clang_cc1 -std=c++14 -ast-dump -fcuda-is-device -x hip %s | FileCheck -check-prefixes=CHECK,DEV %s
|
|
|
|
#include "Inputs/cuda.h"
|
|
|
|
// CHECK-LABEL: VarDecl {{.*}} m1 'int'
|
|
// CHECK-NEXT: CUDAConstantAttr {{.*}}cuda.h
|
|
__constant__ int m1;
|
|
|
|
// CHECK-LABEL: VarDecl {{.*}} m2 'int'
|
|
// CHECK-NEXT: CUDAConstantAttr {{.*}}cuda.h
|
|
// CHECK-NOT: CUDAConstantAttr
|
|
__constant__ __constant__ int m2;
|
|
|
|
// CHECK-LABEL: VarDecl {{.*}} m3 'const int'
|
|
// HOST-NOT: CUDAConstantAttr
|
|
// DEV-NOT: CUDAConstantAttr {{.*}}cuda.h
|
|
// DEV: CUDAConstantAttr {{.*}}Implicit
|
|
// DEV-NOT: CUDAConstantAttr {{.*}}cuda.h
|
|
constexpr int m3 = 1;
|
|
|
|
// CHECK-LABEL: VarDecl {{.*}} m3a 'const int'
|
|
// CHECK-NOT: CUDAConstantAttr {{.*}}Implicit
|
|
// CHECK: CUDAConstantAttr {{.*}}cuda.h
|
|
// CHECK-NOT: CUDAConstantAttr {{.*}}Implicit
|
|
constexpr __constant__ int m3a = 2;
|
|
|
|
// CHECK-LABEL: VarDecl {{.*}} m3b 'const int'
|
|
// CHECK-NOT: CUDAConstantAttr {{.*}}Implicit
|
|
// CHECK: CUDAConstantAttr {{.*}}cuda.h
|
|
// CHECK-NOT: CUDAConstantAttr {{.*}}Implicit
|
|
__constant__ constexpr int m3b = 3;
|