honggyu.kim added a comment. I also tested this patch with the following example.
$ cat -n test.c 1 int main() 2 { 3 int a; 4 #if __arm__ 5 int b = a; 6 #endif 7 return a; 8 } As you can see above, the example contains arm specific code region with arm macro in #if statement. If I run it with scan-build the result doesn't contain the bug for variable b since it is within arm specific code region. $ scan-build clang test.c scan-build: Using '/home/hong.gyu.kim/work.hard/clang/install/bin/clang' for static analysis test.c:7:3: warning: Undefined or garbage value returned to caller return a; ^~~~~~~~ 1 warning generated. scan-build: 1 bug found. scan-build: Run 'scan-view /tmp/scan-build-2015-07-31-002115-17505-1' to examine bug reports. But when I run it with --triple option with arm target triple, it correctly shows the bug from variable b. $ scan-build --triple=arm-linux-gnueabi clang test.c scan-build: Using '/home/hong.gyu.kim/work.hard/clang/install/bin/clang' for static analysis test.c:5:3: warning: Assigned value is garbage or undefined int b = a; ^~~~~ ~ test.c:5:7: warning: Value stored to 'b' during its initialization is never read int b = a; ^ ~ 2 warnings generated. scan-build: 2 bugs found. scan-build: Run 'scan-view /tmp/scan-build-2015-07-31-002128-17518-1' to examine bug reports. http://reviews.llvm.org/D10356 _______________________________________________ cfe-commits mailing list cfe-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits