mirror of
				https://github.com/c64scene-ar/llvm-6502.git
				synced 2025-11-03 14:21:30 +00:00 
			
		
		
		
	git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51695 91177308-0d34-0410-b5e6-96231b3b80d8
		
			
				
	
	
		
			40 lines
		
	
	
		
			703 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			703 B
		
	
	
	
		
			C
		
	
	
	
	
	
// RUN: %llvmgcc %s -S -o -
 | 
						|
 | 
						|
// Aggregates of size zero should be dropped from argument list.
 | 
						|
typedef long int Tlong;
 | 
						|
struct S2411 {
 | 
						|
  __attribute__((aligned)) Tlong:0;
 | 
						|
};
 | 
						|
 | 
						|
extern struct S2411 a2411[5];
 | 
						|
extern void checkx2411(struct S2411);
 | 
						|
void test2411(void) {
 | 
						|
  checkx2411(a2411[0]);
 | 
						|
}
 | 
						|
 | 
						|
// Proper handling of zero sized fields during type conversion.
 | 
						|
typedef unsigned long long int Tal2ullong __attribute__((aligned(2)));
 | 
						|
struct S2525 {
 | 
						|
 Tal2ullong: 0;
 | 
						|
 struct {
 | 
						|
 } e;
 | 
						|
};
 | 
						|
struct S2525 s2525;
 | 
						|
 | 
						|
struct {
 | 
						|
  signed char f;
 | 
						|
  char :0;
 | 
						|
  struct{}h;
 | 
						|
  char * i[5];
 | 
						|
} data; 
 | 
						|
 | 
						|
// Taking address of a zero sized field.
 | 
						|
struct Z {};
 | 
						|
struct Y {
 | 
						|
  int i;
 | 
						|
  struct Z z;
 | 
						|
};
 | 
						|
void *f(struct Y *y) {
 | 
						|
  return &y->z;
 | 
						|
}
 |