ptr-arith.c revision 3c4b37980ad5582409fa9a99ac29da8ab59f1ed0
1e184b1e4e06c059a8360fae4c9b5ea00fd62014dZhongxing Xu// RUN: clang -analyze -checker-simple -analyzer-store=region -verify %s
2e184b1e4e06c059a8360fae4c9b5ea00fd62014dZhongxing Xu
3e184b1e4e06c059a8360fae4c9b5ea00fd62014dZhongxing Xuvoid f1() {
4e184b1e4e06c059a8360fae4c9b5ea00fd62014dZhongxing Xu  int a[10];
5e184b1e4e06c059a8360fae4c9b5ea00fd62014dZhongxing Xu  int *p = a;
6e184b1e4e06c059a8360fae4c9b5ea00fd62014dZhongxing Xu  ++p;
7e184b1e4e06c059a8360fae4c9b5ea00fd62014dZhongxing Xu}
82b1dc179197955bfa79583b13bedb1dc8bcdf25dZhongxing Xu
92b1dc179197955bfa79583b13bedb1dc8bcdf25dZhongxing Xuchar* foo();
102b1dc179197955bfa79583b13bedb1dc8bcdf25dZhongxing Xu
112b1dc179197955bfa79583b13bedb1dc8bcdf25dZhongxing Xuvoid f2() {
122b1dc179197955bfa79583b13bedb1dc8bcdf25dZhongxing Xu  char *p = foo();
132b1dc179197955bfa79583b13bedb1dc8bcdf25dZhongxing Xu  ++p;
142b1dc179197955bfa79583b13bedb1dc8bcdf25dZhongxing Xu}
153c4b37980ad5582409fa9a99ac29da8ab59f1ed0Zhongxing Xu
163c4b37980ad5582409fa9a99ac29da8ab59f1ed0Zhongxing Xuchar* memchr();
173c4b37980ad5582409fa9a99ac29da8ab59f1ed0Zhongxing Xustatic int
183c4b37980ad5582409fa9a99ac29da8ab59f1ed0Zhongxing Xudomain_port (const char *domain_b, const char *domain_e,
193c4b37980ad5582409fa9a99ac29da8ab59f1ed0Zhongxing Xu             const char **domain_e_ptr)
203c4b37980ad5582409fa9a99ac29da8ab59f1ed0Zhongxing Xu{
213c4b37980ad5582409fa9a99ac29da8ab59f1ed0Zhongxing Xu  int port = 0;
223c4b37980ad5582409fa9a99ac29da8ab59f1ed0Zhongxing Xu
233c4b37980ad5582409fa9a99ac29da8ab59f1ed0Zhongxing Xu  const char *p;
243c4b37980ad5582409fa9a99ac29da8ab59f1ed0Zhongxing Xu  const char *colon = memchr (domain_b, ':', domain_e - domain_b);
253c4b37980ad5582409fa9a99ac29da8ab59f1ed0Zhongxing Xu
263c4b37980ad5582409fa9a99ac29da8ab59f1ed0Zhongxing Xu  for (p = colon + 1; p < domain_e ; p++)
273c4b37980ad5582409fa9a99ac29da8ab59f1ed0Zhongxing Xu    port = 10 * port + (*p - '0');
283c4b37980ad5582409fa9a99ac29da8ab59f1ed0Zhongxing Xu  return port;
293c4b37980ad5582409fa9a99ac29da8ab59f1ed0Zhongxing Xu}
30