mirror of
				https://github.com/c64scene-ar/llvm-6502.git
				synced 2025-11-04 05:17:07 +00:00 
			
		
		
		
	automatically. Use -S with llvm-gcc rather than -c, so tests can work when llvm-gcc is really dragonegg (which can output IR with -S but not -c). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120158 91177308-0d34-0410-b5e6-96231b3b80d8
		
			
				
	
	
		
			55 lines
		
	
	
		
			575 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			55 lines
		
	
	
		
			575 B
		
	
	
	
		
			C
		
	
	
	
	
	
// RUN: %llvmgcc -S -fnested-functions -O0 -o - %s 
 | 
						|
// PR915
 | 
						|
 | 
						|
extern void abort(void);
 | 
						|
 | 
						|
void nest(int n)
 | 
						|
{
 | 
						|
  int a = 0;
 | 
						|
  int b = 5;
 | 
						|
  int c = 0;
 | 
						|
  int d = 7;
 | 
						|
 | 
						|
  void o(int i, int j)
 | 
						|
  {
 | 
						|
    if (i!=j)
 | 
						|
      abort();
 | 
						|
  }
 | 
						|
 | 
						|
  void f(x)
 | 
						|
    int x; /* K&R style */
 | 
						|
  {
 | 
						|
    int e = 0;
 | 
						|
    int f = 2;
 | 
						|
    int g = 0;
 | 
						|
 | 
						|
    void y(void)
 | 
						|
    {
 | 
						|
      c = n;
 | 
						|
      e = 1;
 | 
						|
      g = x;
 | 
						|
    }
 | 
						|
 | 
						|
    void z(void)
 | 
						|
    {
 | 
						|
      a = 4;
 | 
						|
      g = 3;
 | 
						|
    }
 | 
						|
 | 
						|
    a = 5;
 | 
						|
    y();
 | 
						|
    c = x;
 | 
						|
    z();
 | 
						|
    o(1,e);
 | 
						|
    o(2,f);
 | 
						|
    o(3,g);
 | 
						|
  }
 | 
						|
 | 
						|
  c = 2;
 | 
						|
  f(6);
 | 
						|
  o(4,a);
 | 
						|
  o(5,b);
 | 
						|
  o(6,c);
 | 
						|
  o(7,d);
 | 
						|
}
 |