Y Song via llvm-dev
2019-Nov-03 04:08 UTC
[llvm-dev] Question about typeof builtin and address_space pointers
Hi, I have some questions about the following interaction between typeof builtin and pointers with address space attribute. -bash-4.4$ cat t2.c int test(int __attribute__((address_space(1))) *p) { #ifdef NO_TYPEOF int t = *p; #else typeof(*p) t = *p; #endif return t; } -bash-4.4$ clang -c t2.c t2.c:5:14: error: automatic variable qualified with an address space typeof(*p) t = *p; ^ 1 error generated. -bash-4.4$ clang -DNO_TYPEOF -c t2.c -bash-4.4$ The compiler is latest trunk. I built a release version with assertion on, but assertion probably should not matter here.>From the above example, an error will appear with typeof of thepointer dereference, but will be okay if using type 'int' directly. Is this the expected behavior? What exactly 'typeof' builtiin does here? Some clarification will be really appreciated. Thanks! Yonghong