Fznamznon added a comment.
Okay, seems like OpenMP needs unsupported types diagnosing as well. I'm trying
to adapt this patch for OpenMP, but it doesn't work out of the box because it
diagnoses memcpy like operations, so with the current patch the code like this
will cause diagnostics:
struct T {
char a;
__float128 f;
char c;
T() : a(12), f(15) {}
}
#pragma omp declare target
T a = T();
#pragma omp end declare target
It happens because member initialization in the constructor is still usage of
`f` field which is marked unavailable because of type. I'm not sure that it is
possible to understand how the unavailable declaration is used in the place
where diagnostic about usage of unavailable declaration is actually emitted, so
I will probably need some other place/solution for it.
@jdoerfert , could you please help to understand how the diagnostic should work
for OpenMP cases? Or you probably have some spec/requirements for it?
Understanding what exactly is needed will help with the implementation, I guess.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D74387/new/
https://reviews.llvm.org/D74387
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits