dead-stores.c revision f87821c086a46411883b385c743996a35cc8e154
1aa395ba050c558b1ebf66c7868165938d98b6a5bTed Kremenek// RUN: clang -warn-dead-stores -verify %s 28aefcbfd3c0409c26ca44c123a41edd631eab9bcTed Kremenek 349a2fd2758996b6f674babf19c75b3d01e77e2d4Ted Kremenekvoid f1() { 4aa395ba050c558b1ebf66c7868165938d98b6a5bTed Kremenek int k, y; 50fdf06e5eef80ce56ce6499ba662453919b95af1Ted Kremenek int abc=1; 60fdf06e5eef80ce56ce6499ba662453919b95af1Ted Kremenek long idx=abc+3*5; // expected-warning {{value stored to variable is never used}} 7aa395ba050c558b1ebf66c7868165938d98b6a5bTed Kremenek} 88aefcbfd3c0409c26ca44c123a41edd631eab9bcTed Kremenek 949a2fd2758996b6f674babf19c75b3d01e77e2d4Ted Kremenekvoid f2(void *b) { 108aefcbfd3c0409c26ca44c123a41edd631eab9bcTed Kremenek char *c = (char*)b; // no-warning 118aefcbfd3c0409c26ca44c123a41edd631eab9bcTed Kremenek char *d = b+1; // expected-warning {{value stored to variable is never used}} 128aefcbfd3c0409c26ca44c123a41edd631eab9bcTed Kremenek printf("%s", c); 138aefcbfd3c0409c26ca44c123a41edd631eab9bcTed Kremenek} 1474c43a0967d07572dd6907776d91cdb2b2e7179aTed Kremenek 1549a2fd2758996b6f674babf19c75b3d01e77e2d4Ted Kremenekvoid f3() { 160fdf06e5eef80ce56ce6499ba662453919b95af1Ted Kremenek int r; 170fdf06e5eef80ce56ce6499ba662453919b95af1Ted Kremenek if ((r = f()) != 0) { // no-warning 180fdf06e5eef80ce56ce6499ba662453919b95af1Ted Kremenek int y = r; // no-warning 190fdf06e5eef80ce56ce6499ba662453919b95af1Ted Kremenek printf("the error is: %d\n", y); 200fdf06e5eef80ce56ce6499ba662453919b95af1Ted Kremenek } 2174c43a0967d07572dd6907776d91cdb2b2e7179aTed Kremenek} 2249a2fd2758996b6f674babf19c75b3d01e77e2d4Ted Kremenek 2349a2fd2758996b6f674babf19c75b3d01e77e2d4Ted Kremenekvoid f4(int k) { 2449a2fd2758996b6f674babf19c75b3d01e77e2d4Ted Kremenek 2549a2fd2758996b6f674babf19c75b3d01e77e2d4Ted Kremenek k = 1; 2649a2fd2758996b6f674babf19c75b3d01e77e2d4Ted Kremenek 2749a2fd2758996b6f674babf19c75b3d01e77e2d4Ted Kremenek if (k) 2849a2fd2758996b6f674babf19c75b3d01e77e2d4Ted Kremenek f1(); 2949a2fd2758996b6f674babf19c75b3d01e77e2d4Ted Kremenek 3049a2fd2758996b6f674babf19c75b3d01e77e2d4Ted Kremenek k = 2; // expected-warning {{value stored to variable is never used}} 3149a2fd2758996b6f674babf19c75b3d01e77e2d4Ted Kremenek} 32f87821c086a46411883b385c743996a35cc8e154Ted Kremenek 33f87821c086a46411883b385c743996a35cc8e154Ted Kremenekvoid f5() { 34f87821c086a46411883b385c743996a35cc8e154Ted Kremenek 35f87821c086a46411883b385c743996a35cc8e154Ted Kremenek int x = 4; // no-warning 36f87821c086a46411883b385c743996a35cc8e154Ted Kremenek int *p = &x; // expected-warning{{value stored to variable is never used}} 37f87821c086a46411883b385c743996a35cc8e154Ted Kremenek 38f87821c086a46411883b385c743996a35cc8e154Ted Kremenek}