1cdc3a89d5de90b2299c56f4a46c3de590c5184d1Ted Kremenek// RUN: %clang_cc1 -analyze -analyzer-checker=core,alpha.core -std=gnu99 -analyzer-store=region -verify %s 28e8fb3be5bd78f0564444eca02b404566a5f3b5dAndy Gibbs// expected-no-diagnostics 35c86b1982e5d11e71f4810eebfb143e3824c75a8Zhongxing Xu 45c86b1982e5d11e71f4810eebfb143e3824c75a8Zhongxing Xu 55c86b1982e5d11e71f4810eebfb143e3824c75a8Zhongxing Xu// The store for 'a[1]' should not be removed mistakenly. SymbolicRegions may 65c86b1982e5d11e71f4810eebfb143e3824c75a8Zhongxing Xu// also be live roots. 75c86b1982e5d11e71f4810eebfb143e3824c75a8Zhongxing Xuvoid f14(int *a) { 85c86b1982e5d11e71f4810eebfb143e3824c75a8Zhongxing Xu int i; 95c86b1982e5d11e71f4810eebfb143e3824c75a8Zhongxing Xu a[1] = 1; 105c86b1982e5d11e71f4810eebfb143e3824c75a8Zhongxing Xu i = a[1]; 115c86b1982e5d11e71f4810eebfb143e3824c75a8Zhongxing Xu if (i != 1) { 125c86b1982e5d11e71f4810eebfb143e3824c75a8Zhongxing Xu int *p = 0; 135c86b1982e5d11e71f4810eebfb143e3824c75a8Zhongxing Xu i = *p; // no-warning 145c86b1982e5d11e71f4810eebfb143e3824c75a8Zhongxing Xu } 155c86b1982e5d11e71f4810eebfb143e3824c75a8Zhongxing Xu} 16