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);
 | |
| }
 | 
