30 lines
		
	
	
		
			575 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			30 lines
		
	
	
		
			575 B
		
	
	
	
		
			C
		
	
	
	
	
	
| // RUN: %clang_cc1 %s -fsyntax-only -verify
 | |
| // expected-no-diagnostics
 | |
| // rdar:// 9129552
 | |
| // PR9406
 | |
| 
 | |
| typedef struct {
 | |
| 	char *str;
 | |
| 	char *str2;
 | |
| } Class;
 | |
| 
 | |
| typedef union {
 | |
| 	Class *object;
 | |
| } Instance __attribute__((transparent_union));
 | |
| 
 | |
| __attribute__((overloadable)) void Class_Init(Instance this, char *str, void *str2) {
 | |
| 	this.object->str  = str;
 | |
| 	this.object->str2 = str2;
 | |
| }
 | |
| 
 | |
| __attribute__((overloadable)) void Class_Init(Instance this, char *str) {
 | |
| 	this.object->str  = str;
 | |
| 	this.object->str2 = str;
 | |
| }
 | |
| 
 | |
| int main(void) {
 | |
| 	Class obj;
 | |
| 	Class_Init(&obj, "Hello ", " World");
 | |
| }
 | |
| 
 | 
