// RUN: %clang_analyze_cc1 -triple amdgcn-unknown-unknown \ // RUN: -Wno-incompatible-library-redeclaration \ // RUN: -analyzer-checker=core,unix -verify %s // expected-no-diagnostics // // By default, pointers are 64-bits. #define ADDRESS_SPACE_64BITS __attribute__((address_space(0))) #define ADDRESS_SPACE_32BITS __attribute__((address_space(3))) int test(ADDRESS_SPACE_32BITS int *p, ADDRESS_SPACE_32BITS void *q) { return p == q; // no-crash } // Make sure that the cstring checker handles non-default address spaces ADDRESS_SPACE_64BITS void * memcpy(ADDRESS_SPACE_64BITS void *, ADDRESS_SPACE_32BITS const void *, long unsigned int); ADDRESS_SPACE_64BITS struct { char m[16]; } n; void avoid_cstring_checker_crash(ADDRESS_SPACE_32BITS char *p) { memcpy(&n.m[0], p, 4); // no-crash }