1*73c120a9SValeriy Savchenko // RUN: %clang_analyze_cc1 -analyzer-checker=core -verify %s 2*73c120a9SValeriy Savchenko 3*73c120a9SValeriy Savchenko // expected-no-diagnostics 4*73c120a9SValeriy Savchenko 5*73c120a9SValeriy Savchenko void halt() __attribute__((__noreturn__)); assert(int b)6*73c120a9SValeriy Savchenkovoid assert(int b) { 7*73c120a9SValeriy Savchenko if (!b) 8*73c120a9SValeriy Savchenko halt(); 9*73c120a9SValeriy Savchenko } 10*73c120a9SValeriy Savchenko decode(unsigned width)11*73c120a9SValeriy Savchenkovoid decode(unsigned width) { 12*73c120a9SValeriy Savchenko assert(width > 0); 13*73c120a9SValeriy Savchenko 14*73c120a9SValeriy Savchenko int base; 15*73c120a9SValeriy Savchenko bool inited = false; 16*73c120a9SValeriy Savchenko 17*73c120a9SValeriy Savchenko int i = 0; 18*73c120a9SValeriy Savchenko 19*73c120a9SValeriy Savchenko if (i % width == 0) { 20*73c120a9SValeriy Savchenko base = 512; 21*73c120a9SValeriy Savchenko inited = true; 22*73c120a9SValeriy Savchenko } 23*73c120a9SValeriy Savchenko 24*73c120a9SValeriy Savchenko base += 1; // no-warning 25*73c120a9SValeriy Savchenko 26*73c120a9SValeriy Savchenko if (base >> 10) 27*73c120a9SValeriy Savchenko assert(false); 28*73c120a9SValeriy Savchenko } 29