187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// RUN: %clang_cc1 -analyze -analyzer-checker=core,debug.ExprInspection -verify %s 287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarvoid clang_analyzer_eval(int); 487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarvoid clang_analyzer_warnIfReached(); 587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#define INT_MIN 0x80000000 787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#define INT_MAX 0x7fffffff 887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// PR16833: Analyzer consumes memory until killed by kernel OOM killer 1087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// while analyzing large case ranges. 1187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarvoid PR16833(unsigned op) { 1287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar switch (op) { 1387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar case 0x02 << 26 ... 0x03 << 26: // Analyzer should not hang here. 1487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar return; 1587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar } 1687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar} 1787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 1887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarvoid testAdjustment(int t) { 1987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar switch (t + 1) { 2087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar case 2: 2187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar clang_analyzer_eval(t == 1); // expected-warning{{TRUE}} 2287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar break; 2387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar case 3 ... 10: 2487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar clang_analyzer_eval(t > 1); // expected-warning{{TRUE}} 2587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar clang_analyzer_eval(t + 2 <= 11); // expected-warning{{TRUE}} 2687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar clang_analyzer_eval(t > 2); // expected-warning{{UNKNOWN}} 2787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar clang_analyzer_eval(t + 1 == 3); // expected-warning{{UNKNOWN}} 2887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar clang_analyzer_eval(t + 1 == 10); // expected-warning{{UNKNOWN}} 2987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar break; 3087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar default: 3187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar clang_analyzer_warnIfReached(); // expected-warning{{REACHABLE}} 3287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar } 3387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar} 3487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 3587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarvoid testUnknownVal(int value, int mask) { 3687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar // Once ConstraintManager will process '&' and this test will require some changes. 3787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar switch (value & mask) { 3887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar case 1: 3987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar clang_analyzer_warnIfReached(); // expected-warning{{REACHABLE}} 4087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar break; 4187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar case 3 ... 10: 4287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar clang_analyzer_warnIfReached(); // expected-warning{{REACHABLE}} 4387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar break; 4487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar default: 4587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar clang_analyzer_warnIfReached(); // expected-warning{{REACHABLE}} 4687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar } 4787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar} 4887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 4987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarvoid testSwitchCond(int arg) { 5087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar if (arg > 10) { 5187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar switch (arg) { 5287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar case INT_MIN ... 10: 5387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar clang_analyzer_warnIfReached(); // no-warning 5487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar break; 5587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar case 11 ... 20: 5687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar clang_analyzer_warnIfReached(); // expected-warning{{REACHABLE}} 5787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar break; 5887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar default: 5987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar clang_analyzer_warnIfReached(); // expected-warning{{REACHABLE}} 6087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar } 6187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 6287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar switch (arg) { 6387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar case INT_MIN ... 9: 6487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar clang_analyzer_warnIfReached(); // no-warning 6587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar break; 6687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar case 10 ... 20: 6787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar clang_analyzer_warnIfReached(); // expected-warning{{REACHABLE}} 6887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar clang_analyzer_eval(arg > 10); // expected-warning{{TRUE}} 6987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar break; 7087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar default: 7187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar clang_analyzer_warnIfReached(); // expected-warning{{REACHABLE}} 7287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar } 7387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar } // arg > 10 7487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar} 7587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 7687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarvoid testDefaultUnreachable(int arg) { 7787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar if (arg > 10) { 7887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar switch (arg) { 7987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar case INT_MIN ... 9: 8087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar clang_analyzer_warnIfReached(); // no-warning 8187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar break; 8287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar case 10 ... INT_MAX: 8387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar clang_analyzer_warnIfReached(); // expected-warning{{REACHABLE}} 8487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar clang_analyzer_eval(arg > 10); // expected-warning{{TRUE}} 8587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar break; 8687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar default: 8787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar clang_analyzer_warnIfReached(); // no-warning 8887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar } 8987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar } 9087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar} 9187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 9287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarvoid testBranchReachability(int arg) { 9387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar if (arg > 10 && arg < 20) { 9487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar switch (arg) { 9587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar case INT_MIN ... 4: 9687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar clang_analyzer_warnIfReached(); // no-warning 9787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar break; 9887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar case 5 ... 9: 9987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar clang_analyzer_warnIfReached(); // no-warning 10087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar break; 10187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar case 10 ... 15: 10287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar clang_analyzer_warnIfReached(); // expected-warning{{REACHABLE}} 10387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar clang_analyzer_eval(arg > 10 && arg <= 15); // expected-warning{{TRUE}} 10487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar break; 10587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar default: 10687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar clang_analyzer_warnIfReached(); // no-warning 10787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar break; 10887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar case 17 ... 25: 10987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar clang_analyzer_warnIfReached(); // expected-warning{{REACHABLE}} 11087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar clang_analyzer_eval(arg >= 17 && arg < 20); // expected-warning{{TRUE}} 11187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar break; 11287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar case 26 ... INT_MAX: 11387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar clang_analyzer_warnIfReached(); // no-warning 11487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar break; 11587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar case 16: 11687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar clang_analyzer_warnIfReached(); // expected-warning{{REACHABLE}} 11787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar clang_analyzer_eval(arg == 16); // expected-warning{{TRUE}} 11887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar break; 11987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar } 12087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar } 12187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar} 12287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 12387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarvoid testDefaultBranchRange(int arg) { 12487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar switch (arg) { 12587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar case INT_MIN ... 9: 12687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar clang_analyzer_warnIfReached(); // expected-warning{{REACHABLE}} 12787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar break; 12887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar case 20 ... INT_MAX: 12987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar clang_analyzer_warnIfReached(); // expected-warning{{REACHABLE}} 13087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar clang_analyzer_eval(arg >= 20); // expected-warning{{TRUE}} 13187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar break; 13287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar default: 13387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar clang_analyzer_warnIfReached(); // expected-warning{{REACHABLE}} 13487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar clang_analyzer_eval(arg == 16); // expected-warning{{FALSE}} 13587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar clang_analyzer_eval(arg > 9); // expected-warning{{TRUE}} 13687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar clang_analyzer_eval(arg <= 20); // expected-warning{{TRUE}} 13787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 13887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar case 16: 13987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar clang_analyzer_warnIfReached(); // expected-warning{{REACHABLE}} 14087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar } 14187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar} 14287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 14387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarvoid testAllUnreachableButDefault(int arg) { 14487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar if (arg < 0) { 14587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar switch (arg) { 14687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar case 0 ... 9: 14787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar clang_analyzer_warnIfReached(); // no-warning 14887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar break; 14987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar case 20 ... INT_MAX: 15087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar clang_analyzer_warnIfReached(); // no-warning 15187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar break; 15287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar default: 15387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar clang_analyzer_warnIfReached(); // expected-warning{{REACHABLE}} 15487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar break; 15587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar case 16: 15687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar clang_analyzer_warnIfReached(); // no-warning 15787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar } 15887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar clang_analyzer_warnIfReached(); // expected-warning{{REACHABLE}} 15987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar } 16087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar} 16187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 16287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarvoid testAllUnreachable(int arg) { 16387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar if (arg < 0) { 16487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar switch (arg) { 16587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar case 0 ... 9: 16687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar clang_analyzer_warnIfReached(); // no-warning 16787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar break; 16887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar case 20 ... INT_MAX: 16987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar clang_analyzer_warnIfReached(); // no-warning 17087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar break; 17187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar case 16: 17287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar clang_analyzer_warnIfReached(); // no-warning 17387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar } 17487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar clang_analyzer_warnIfReached(); // expected-warning{{REACHABLE}} 17587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar } 17687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar} 17787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 17887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarvoid testDifferentTypes(int arg) { 17987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar switch (arg) { 18087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar case -1U ... 400000000LL: 18187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar clang_analyzer_warnIfReached(); // expected-warning{{REACHABLE}} 18287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar break; 18387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar default: 18487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar clang_analyzer_warnIfReached(); // expected-warning{{REACHABLE}} 18587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar break; 18687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar } 18787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar} 18887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 18987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarvoid testDifferentTypes2(unsigned long arg) { 19087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar switch (arg) { 19187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar case 1UL ... 400000000UL: 19287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar clang_analyzer_warnIfReached(); // expected-warning{{REACHABLE}} 19387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar break; 19487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar default: 19587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar clang_analyzer_warnIfReached(); // expected-warning{{REACHABLE}} 19687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar break; 19787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar } 19887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar} 19987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 20087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarvoid testDifferentTypes3(int arg) { 20187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar switch (arg) { 20287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar case 1UL ... 400000000UL: 20387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar clang_analyzer_warnIfReached(); // expected-warning{{REACHABLE}} 20487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar break; 20587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar default: 20687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar clang_analyzer_warnIfReached(); // expected-warning{{REACHABLE}} 20787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar break; 20887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar } 20987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar} 21087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 21187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarvoid testConstant() { 21287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar switch (3) { 21387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar case 1 ... 5: 21487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar clang_analyzer_warnIfReached(); // expected-warning{{REACHABLE}} 21587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar break; 21687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar default: 21787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar clang_analyzer_warnIfReached(); // no-warning 21887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar break; 21987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar } 22087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar} 221