Skip to content

Commit 3b2f19d

Browse files
committed
[OpenMP][NFC] Pre-commit test changes regarding PR48933
This will highlight the effective changes in subsequent commits. Reviewed By: ABataev Differential Revision: https://reviews.llvm.org/D95903
1 parent 09b832e commit 3b2f19d

File tree

1 file changed

+126
-2
lines changed

1 file changed

+126
-2
lines changed

clang/test/OpenMP/nvptx_unsupported_type_messages.cpp

Lines changed: 126 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,19 +77,143 @@ T1 bar1() {
7777
void baz1() {
7878
T1 t = bar1();
7979
}
80+
81+
// TODO: We should not emit an error for dead functions we do not emit.
82+
inline void dead_inline_declare_target() {
83+
// expected-note@+1 {{'b' defined here}}
84+
long double *a, b = 0;
85+
// expected-error@+1 {{'b' requires 128 bit size 'long double' type support, but device 'nvptx64-unknown-unknown' does not support it}}
86+
a = &b;
87+
}
88+
// TODO: We should not emit an error for dead functions we do not emit.
89+
static void dead_static_declare_target() {
90+
// expected-note@+1 {{'b' defined here}}
91+
long double *a, b = 0;
92+
// expected-error@+1 {{'b' requires 128 bit size 'long double' type support, but device 'nvptx64-unknown-unknown' does not support it}}
93+
a = &b;
94+
}
95+
template<bool>
96+
void dead_template_declare_target() {
97+
long double *a, b = 0;
98+
a = &b;
99+
}
100+
101+
// TODO: We should diagnose the return type and argument type here.
102+
long double ld_return1a() { return 0; }
103+
void ld_arg1a(long double ld) {}
104+
105+
// TODO: We should diagnose the return type and argument type here.
106+
typedef long double ld_ty;
107+
ld_ty ld_return1b() { return 0; }
108+
void ld_arg1b(ld_ty ld) {}
109+
110+
static long double ld_return1c() { return 0; }
111+
static void ld_arg1c(long double ld) {}
112+
113+
inline long double ld_return1d() { return 0; }
114+
inline void ld_arg1d(long double ld) {}
115+
116+
// expected-note@+1 {{'ld_return1e' defined here}}
117+
static long double ld_return1e() { return 0; }
118+
// expected-note@+1 {{'ld_arg1e' defined here}}
119+
static void ld_arg1e(long double ld) {}
120+
121+
// expected-note@+1 {{'ld_return1f' defined here}}
122+
inline long double ld_return1f() { return 0; }
123+
// expected-note@+1 {{'ld_arg1f' defined here}}
124+
inline void ld_arg1f(long double ld) {}
125+
126+
inline void ld_use1() {
127+
// expected-note@+1 {{'ld' defined here}}
128+
long double ld = 0;
129+
// TODO: We should not diagnose this as the function is dead.
130+
// expected-error@+1 {{'ld' requires 128 bit size 'long double' type support, but device 'nvptx64-unknown-unknown' does not support it}}
131+
ld += 1;
132+
}
133+
static void ld_use2() {
134+
// expected-note@+1 {{'ld' defined here}}
135+
long double ld = 0;
136+
// TODO: We should not diagnose this as the function is dead.
137+
// expected-error@+1 {{'ld' requires 128 bit size 'long double' type support, but device 'nvptx64-unknown-unknown' does not support it}}
138+
ld += 1;
139+
}
140+
141+
inline void ld_use3() {
142+
// expected-note@+1 {{'ld' defined here}}
143+
long double ld = 0;
144+
// expected-error@+1 {{'ld' requires 128 bit size 'long double' type support, but device 'nvptx64-unknown-unknown' does not support it}}
145+
ld += 1;
146+
}
147+
static void ld_use4() {
148+
// expected-note@+1 {{'ld' defined here}}
149+
long double ld = 0;
150+
// expected-error@+1 {{'ld' requires 128 bit size 'long double' type support, but device 'nvptx64-unknown-unknown' does not support it}}
151+
ld += 1;
152+
}
153+
154+
void external() {
155+
// expected-error@+1 {{'ld_return1e' requires 128 bit size 'long double' type support, but device 'nvptx64-unknown-unknown' does not support it}}
156+
void *p1 = reinterpret_cast<void*>(&ld_return1e);
157+
// expected-error@+1 {{'ld_arg1e' requires 128 bit size 'long double' type support, but device 'nvptx64-unknown-unknown' does not support it}}
158+
void *p2 = reinterpret_cast<void*>(&ld_arg1e);
159+
// expected-error@+1 {{'ld_return1f' requires 128 bit size 'long double' type support, but device 'nvptx64-unknown-unknown' does not support it}}
160+
void *p3 = reinterpret_cast<void*>(&ld_return1f);
161+
// expected-error@+1 {{'ld_arg1f' requires 128 bit size 'long double' type support, but device 'nvptx64-unknown-unknown' does not support it}}
162+
void *p4 = reinterpret_cast<void*>(&ld_arg1f);
163+
void *p5 = reinterpret_cast<void*>(&ld_use3);
164+
void *p6 = reinterpret_cast<void*>(&ld_use4);
165+
}
166+
167+
#ifndef _ARCH_PPC
168+
// TODO: We should diagnose the return type and argument type here.
169+
__float128 ld_return2a() { return 0; }
170+
void ld_arg2a(__float128 ld) {}
171+
172+
// TODO: We should diagnose the return type and argument type here.
173+
typedef __float128 fp128_ty;
174+
fp128_ty ld_return2b() { return 0; }
175+
void ld_arg2b(fp128_ty ld) {}
176+
#endif
177+
80178
#pragma omp end declare target
81179

180+
// TODO: There should not be an error here, dead_inline is never emitted.
181+
// expected-note@+1 3{{'f' defined here}}
182+
inline long double dead_inline(long double f) {
183+
#pragma omp target map(f)
184+
// TODO: We should not emit the same error message 3 times, here and elsewhere in this file.
185+
// expected-error@+1 3{{'f' requires 128 bit size 'long double' type support, but device 'nvptx64-unknown-unknown' does not support it}}
186+
f = 1;
187+
return f;
188+
}
189+
190+
// TODO: There should not be an error here, dead_static is never emitted.
191+
// expected-note@+1 3{{'f' defined here}}
192+
static long double dead_static(long double f) {
193+
#pragma omp target map(f)
194+
// expected-error@+1 3{{'f' requires 128 bit size 'long double' type support, but device 'nvptx64-unknown-unknown' does not support it}}
195+
f = 1;
196+
return f;
197+
}
198+
199+
template<typename T>
200+
long double dead_template(long double f) {
201+
#pragma omp target map(f)
202+
f = 1;
203+
return f;
204+
}
205+
82206
#ifndef _ARCH_PPC
83207
// expected-note@+1 3{{'f' defined here}}
84-
__float128 foo1(__float128 f) {
208+
__float128 foo2(__float128 f) {
85209
#pragma omp target map(f)
86210
// expected-error@+1 3{{'f' requires 128 bit size '__float128' type support, but device 'nvptx64-unknown-unknown' does not support it}}
87211
f = 1;
88212
return f;
89213
}
90214
#else
91215
// expected-note@+1 3{{'f' defined here}}
92-
long double foo1(long double f) {
216+
long double foo3(long double f) {
93217
#pragma omp target map(f)
94218
// expected-error@+1 3{{'f' requires 128 bit size 'long double' type support, but device 'nvptx64-unknown-unknown' does not support it}}
95219
f = 1;

0 commit comments

Comments
 (0)