| Chris Lattner | 12f0c7b | 2007-02-07 23:28:08 +0000 | [diff] [blame] | 1 | // RUN: %llvmgcc -S -fnested-functions -O0 -o - -emit-llvm %s |
| 2 | // PR915 | ||||
| 3 | |||||
| 4 | extern void abort(void); | ||||
| 5 | |||||
| 6 | void nest(int n) | ||||
| 7 | { | ||||
| 8 | int a = 0; | ||||
| 9 | int b = 5; | ||||
| 10 | int c = 0; | ||||
| 11 | int d = 7; | ||||
| 12 | |||||
| 13 | void o(int i, int j) | ||||
| 14 | { | ||||
| 15 | if (i!=j) | ||||
| 16 | abort(); | ||||
| 17 | } | ||||
| 18 | |||||
| 19 | void f(x) | ||||
| 20 | int x; /* K&R style */ | ||||
| 21 | { | ||||
| 22 | int e = 0; | ||||
| 23 | int f = 2; | ||||
| 24 | int g = 0; | ||||
| 25 | |||||
| 26 | void y(void) | ||||
| 27 | { | ||||
| 28 | c = n; | ||||
| 29 | e = 1; | ||||
| 30 | g = x; | ||||
| 31 | } | ||||
| 32 | |||||
| 33 | void z(void) | ||||
| 34 | { | ||||
| 35 | a = 4; | ||||
| 36 | g = 3; | ||||
| 37 | } | ||||
| 38 | |||||
| 39 | a = 5; | ||||
| 40 | y(); | ||||
| 41 | c = x; | ||||
| 42 | z(); | ||||
| 43 | o(1,e); | ||||
| 44 | o(2,f); | ||||
| 45 | o(3,g); | ||||
| 46 | } | ||||
| 47 | |||||
| 48 | c = 2; | ||||
| 49 | f(6); | ||||
| 50 | o(4,a); | ||||
| 51 | o(5,b); | ||||
| 52 | o(6,c); | ||||
| 53 | o(7,d); | ||||
| 54 | } | ||||