1236d9d16c9b42001085611a82d37b9d5a4f39c1fDouglas Gregor// RUN: %clang_cc1 %s -verify -fsyntax-only 2236d9d16c9b42001085611a82d37b9d5a4f39c1fDouglas Gregor// expected-no-diagnostics 3236d9d16c9b42001085611a82d37b9d5a4f39c1fDouglas Gregor 4236d9d16c9b42001085611a82d37b9d5a4f39c1fDouglas Gregor_Atomic(unsigned int) data1; 5236d9d16c9b42001085611a82d37b9d5a4f39c1fDouglas Gregorint _Atomic data2; 6236d9d16c9b42001085611a82d37b9d5a4f39c1fDouglas Gregor 7236d9d16c9b42001085611a82d37b9d5a4f39c1fDouglas Gregor// Shift operations 8236d9d16c9b42001085611a82d37b9d5a4f39c1fDouglas Gregor 9236d9d16c9b42001085611a82d37b9d5a4f39c1fDouglas Gregorint func_01 (int x) { 10236d9d16c9b42001085611a82d37b9d5a4f39c1fDouglas Gregor return data1 << x; 11236d9d16c9b42001085611a82d37b9d5a4f39c1fDouglas Gregor} 12236d9d16c9b42001085611a82d37b9d5a4f39c1fDouglas Gregor 13236d9d16c9b42001085611a82d37b9d5a4f39c1fDouglas Gregorint func_02 (int x) { 14236d9d16c9b42001085611a82d37b9d5a4f39c1fDouglas Gregor return x << data1; 15236d9d16c9b42001085611a82d37b9d5a4f39c1fDouglas Gregor} 16236d9d16c9b42001085611a82d37b9d5a4f39c1fDouglas Gregor 17236d9d16c9b42001085611a82d37b9d5a4f39c1fDouglas Gregorint func_03 (int x) { 18236d9d16c9b42001085611a82d37b9d5a4f39c1fDouglas Gregor return data2 << x; 19236d9d16c9b42001085611a82d37b9d5a4f39c1fDouglas Gregor} 20236d9d16c9b42001085611a82d37b9d5a4f39c1fDouglas Gregor 21236d9d16c9b42001085611a82d37b9d5a4f39c1fDouglas Gregorint func_04 (int x) { 22236d9d16c9b42001085611a82d37b9d5a4f39c1fDouglas Gregor return x << data2; 23236d9d16c9b42001085611a82d37b9d5a4f39c1fDouglas Gregor} 24236d9d16c9b42001085611a82d37b9d5a4f39c1fDouglas Gregor 25236d9d16c9b42001085611a82d37b9d5a4f39c1fDouglas Gregorint func_05 () { 26236d9d16c9b42001085611a82d37b9d5a4f39c1fDouglas Gregor return data2 << data1; 27236d9d16c9b42001085611a82d37b9d5a4f39c1fDouglas Gregor} 28236d9d16c9b42001085611a82d37b9d5a4f39c1fDouglas Gregor 29236d9d16c9b42001085611a82d37b9d5a4f39c1fDouglas Gregorint func_06 () { 30236d9d16c9b42001085611a82d37b9d5a4f39c1fDouglas Gregor return data1 << data2; 31236d9d16c9b42001085611a82d37b9d5a4f39c1fDouglas Gregor} 32236d9d16c9b42001085611a82d37b9d5a4f39c1fDouglas Gregor 33236d9d16c9b42001085611a82d37b9d5a4f39c1fDouglas Gregorvoid func_07 (int x) { 34236d9d16c9b42001085611a82d37b9d5a4f39c1fDouglas Gregor data1 <<= x; 35236d9d16c9b42001085611a82d37b9d5a4f39c1fDouglas Gregor} 36236d9d16c9b42001085611a82d37b9d5a4f39c1fDouglas Gregor 37236d9d16c9b42001085611a82d37b9d5a4f39c1fDouglas Gregorvoid func_08 (int x) { 38236d9d16c9b42001085611a82d37b9d5a4f39c1fDouglas Gregor data2 <<= x; 39236d9d16c9b42001085611a82d37b9d5a4f39c1fDouglas Gregor} 40236d9d16c9b42001085611a82d37b9d5a4f39c1fDouglas Gregor 41236d9d16c9b42001085611a82d37b9d5a4f39c1fDouglas Gregorvoid func_09 (int* xp) { 42236d9d16c9b42001085611a82d37b9d5a4f39c1fDouglas Gregor *xp <<= data1; 43236d9d16c9b42001085611a82d37b9d5a4f39c1fDouglas Gregor} 44236d9d16c9b42001085611a82d37b9d5a4f39c1fDouglas Gregor 45236d9d16c9b42001085611a82d37b9d5a4f39c1fDouglas Gregorvoid func_10 (int* xp) { 46236d9d16c9b42001085611a82d37b9d5a4f39c1fDouglas Gregor *xp <<= data2; 47236d9d16c9b42001085611a82d37b9d5a4f39c1fDouglas Gregor} 4809bddcf8c0ce4cc2f2a18e050e971539e8a396f8Eli Friedman 4909bddcf8c0ce4cc2f2a18e050e971539e8a396f8Eli Friedmanint func_11 (int x) { 5009bddcf8c0ce4cc2f2a18e050e971539e8a396f8Eli Friedman return data1 == x; 5109bddcf8c0ce4cc2f2a18e050e971539e8a396f8Eli Friedman} 5209bddcf8c0ce4cc2f2a18e050e971539e8a396f8Eli Friedman 5309bddcf8c0ce4cc2f2a18e050e971539e8a396f8Eli Friedmanint func_12 () { 5409bddcf8c0ce4cc2f2a18e050e971539e8a396f8Eli Friedman return data1 < data2; 5509bddcf8c0ce4cc2f2a18e050e971539e8a396f8Eli Friedman} 5609bddcf8c0ce4cc2f2a18e050e971539e8a396f8Eli Friedman 5709bddcf8c0ce4cc2f2a18e050e971539e8a396f8Eli Friedmanint func_13 (int x, unsigned y) { 5809bddcf8c0ce4cc2f2a18e050e971539e8a396f8Eli Friedman return x ? data1 : y; 5909bddcf8c0ce4cc2f2a18e050e971539e8a396f8Eli Friedman} 6009bddcf8c0ce4cc2f2a18e050e971539e8a396f8Eli Friedman 61