brintos

brintos / llvm-project-archived public Read only

0
0
Text · 819 B · da59055 Raw
28 lines · c
1// RUN: %clang_analyze_cc1 -triple amdgcn-unknown-unknown \2// RUN:   -Wno-incompatible-library-redeclaration \3// RUN:   -analyzer-checker=core,unix -verify %s4 5// expected-no-diagnostics6//7// By default, pointers are 64-bits.8#define ADDRESS_SPACE_64BITS __attribute__((address_space(0)))9#define ADDRESS_SPACE_32BITS __attribute__((address_space(3)))10 11int test(ADDRESS_SPACE_32BITS int *p, ADDRESS_SPACE_32BITS void *q) {12  return p == q; // no-crash13}14 15// Make sure that the cstring checker handles non-default address spaces16ADDRESS_SPACE_64BITS void *17memcpy(ADDRESS_SPACE_64BITS void *,18       ADDRESS_SPACE_32BITS const void *,19       long unsigned int);20 21ADDRESS_SPACE_64BITS struct {22  char m[16];23} n;24 25void avoid_cstring_checker_crash(ADDRESS_SPACE_32BITS char *p) {26  memcpy(&n.m[0], p, 4); // no-crash27}28