// RUN: %clang_analyze_cc1 -analyze -triple x86_64-apple-darwin10 \ // RUN: -analyzer-checker=core,debug.ExprInspection -verify %s void clang_analyzer_warnIfReached(void); typedef struct { int value; } Struct; typedef union { Struct *ptr; long num; } __attribute__((transparent_union)) Alias; void foo(Struct *x); void foo(Alias y) { if (y.ptr == 0) { // no-crash } clang_analyzer_warnIfReached(); // expected-warning{{REACHABLE}} } void foobar(long z); void foobar(Alias z) { if (z.num != 42) { // no-crash } clang_analyzer_warnIfReached(); // expected-warning{{REACHABLE}} } void foobaz(Alias x) { if (x.ptr == 0) { // no-crash } clang_analyzer_warnIfReached(); // expected-warning{{REACHABLE}} } void bar(Struct arg) { foo(&arg); foobar(42); foobaz(&arg); }