39 lines
		
	
	
		
			627 B
		
	
	
	
		
			C
		
	
	
	
			
		
		
	
	
			39 lines
		
	
	
		
			627 B
		
	
	
	
		
			C
		
	
	
	
// RUN: %clang_cc1 %s -emit-llvm -o -
 | 
						|
 | 
						|
#pragma pack(push, 2)
 | 
						|
struct H {
 | 
						|
  unsigned long f1;
 | 
						|
  unsigned long f2;
 | 
						|
  union {
 | 
						|
    struct opaque1 *f3;
 | 
						|
    struct opaque2 *f4;
 | 
						|
    struct {
 | 
						|
      struct opaque3 *f5;
 | 
						|
      unsigned short  f6;
 | 
						|
    } f7;
 | 
						|
  } f8;
 | 
						|
};
 | 
						|
#pragma pack(pop)
 | 
						|
 | 
						|
struct E {
 | 
						|
  unsigned long f1;
 | 
						|
  unsigned long f2;
 | 
						|
};
 | 
						|
 | 
						|
typedef long (*FuncPtr) ();
 | 
						|
 | 
						|
extern long bork(FuncPtr handler, const struct E *list);
 | 
						|
 | 
						|
static long hndlr()
 | 
						|
{
 | 
						|
  struct H cmd = { 4, 412 };
 | 
						|
  struct H cmd2 = { 4, 412, 0 };
 | 
						|
  return 0;
 | 
						|
}
 | 
						|
void foo(void *inWindow) {
 | 
						|
  static const struct E events[] = {
 | 
						|
    { 123124, 1 }
 | 
						|
  };
 | 
						|
  bork(hndlr, events);
 | 
						|
}
 |