13883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher// RUN: %clang_cc1 -emit-llvm %s  -o /dev/null
23883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher
33883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher/* This triggered a problem in reload, fixed by disabling most of the
43883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher * steps of compilation in GCC.  Before this change, the code went through
53883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher * the entire backend of GCC, even though it was unnecessary for LLVM output
63883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher * now it is skipped entirely, and since reload doesn't run, it can't cause
73883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher * a problem.
83883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher */
93883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher
103883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopherextern int tolower(int);
113883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher
123883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopherconst char *rangematch(const char *pattern, int test, int c) {
133883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher
143883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher  if ((c <= test) | (tolower(c) <= tolower((unsigned char)test)))
153883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher    return 0;
163883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher
173883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher  return pattern;
183883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher}
19