[clang] Implement lifetime analysis for lifetime_capture_by(X) (#115921)
[llvm-project.git] / clang / test / SemaOpenCLCXX / address-space-castoperators.clcpp
blobf0ec86cb0afc688cdd74e42e8054a4a1cafbf71c
1 //RUN: %clang_cc1 %s -pedantic -ast-dump -verify | FileCheck %s
3 void nester_ptr() {
4   local int * * locgen;
5   constant int * * congen;
6   int * * gengen;
8   gengen = const_cast<int**>(locgen); //expected-error{{const_cast from '__local int *__generic *' to '__generic int *__generic *' is not allowed}}
9   gengen = static_cast<int**>(locgen); //expected-error{{static_cast from '__local int *__generic *' to '__generic int *__generic *' is not allowed}}
10 // CHECK-NOT: AddressSpaceConversion
11   gengen = reinterpret_cast<int**>(locgen); //expected-warning{{reinterpret_cast from '__local int *__generic *' to '__generic int *__generic *' changes address space of nested pointers}}
13   gengen = const_cast<int**>(congen); //expected-error{{const_cast from '__constant int *__generic *' to '__generic int *__generic *' is not allowed}}
14   gengen = static_cast<int**>(congen); //expected-error{{static_cast from '__constant int *__generic *' to '__generic int *__generic *' is not allowed}}
15 // CHECK-NOT: AddressSpaceConversion
16   gengen = reinterpret_cast<int**>(congen); //expected-warning{{reinterpret_cast from '__constant int *__generic *' to '__generic int *__generic *' changes address space of nested pointers}}