1d97f558f48865aa96e7bdf9c1c9315790c3d77c9Fariborz Jahanian// RUN: %clang_cc1 %s -fsyntax-only -verify 28e8fb3be5bd78f0564444eca02b404566a5f3b5dAndy Gibbs// expected-no-diagnostics 3d97f558f48865aa96e7bdf9c1c9315790c3d77c9Fariborz Jahanian// rdar:// 9129552 4d97f558f48865aa96e7bdf9c1c9315790c3d77c9Fariborz Jahanian// PR9406 5d97f558f48865aa96e7bdf9c1c9315790c3d77c9Fariborz Jahanian 6d97f558f48865aa96e7bdf9c1c9315790c3d77c9Fariborz Jahaniantypedef struct { 7d97f558f48865aa96e7bdf9c1c9315790c3d77c9Fariborz Jahanian char *str; 8d97f558f48865aa96e7bdf9c1c9315790c3d77c9Fariborz Jahanian char *str2; 9d97f558f48865aa96e7bdf9c1c9315790c3d77c9Fariborz Jahanian} Class; 10d97f558f48865aa96e7bdf9c1c9315790c3d77c9Fariborz Jahanian 11d97f558f48865aa96e7bdf9c1c9315790c3d77c9Fariborz Jahaniantypedef union { 12d97f558f48865aa96e7bdf9c1c9315790c3d77c9Fariborz Jahanian Class *object; 13d97f558f48865aa96e7bdf9c1c9315790c3d77c9Fariborz Jahanian} Instance __attribute__((transparent_union)); 14d97f558f48865aa96e7bdf9c1c9315790c3d77c9Fariborz Jahanian 15d97f558f48865aa96e7bdf9c1c9315790c3d77c9Fariborz Jahanian__attribute__((overloadable)) void Class_Init(Instance this, char *str, void *str2) { 16d97f558f48865aa96e7bdf9c1c9315790c3d77c9Fariborz Jahanian this.object->str = str; 17d97f558f48865aa96e7bdf9c1c9315790c3d77c9Fariborz Jahanian this.object->str2 = str2; 18d97f558f48865aa96e7bdf9c1c9315790c3d77c9Fariborz Jahanian} 19d97f558f48865aa96e7bdf9c1c9315790c3d77c9Fariborz Jahanian 20d97f558f48865aa96e7bdf9c1c9315790c3d77c9Fariborz Jahanian__attribute__((overloadable)) void Class_Init(Instance this, char *str) { 21d97f558f48865aa96e7bdf9c1c9315790c3d77c9Fariborz Jahanian this.object->str = str; 22d97f558f48865aa96e7bdf9c1c9315790c3d77c9Fariborz Jahanian this.object->str2 = str; 23d97f558f48865aa96e7bdf9c1c9315790c3d77c9Fariborz Jahanian} 24d97f558f48865aa96e7bdf9c1c9315790c3d77c9Fariborz Jahanian 25d97f558f48865aa96e7bdf9c1c9315790c3d77c9Fariborz Jahanianint main(void) { 26d97f558f48865aa96e7bdf9c1c9315790c3d77c9Fariborz Jahanian Class obj; 27d97f558f48865aa96e7bdf9c1c9315790c3d77c9Fariborz Jahanian Class_Init(&obj, "Hello ", " World"); 28d97f558f48865aa96e7bdf9c1c9315790c3d77c9Fariborz Jahanian} 29d97f558f48865aa96e7bdf9c1c9315790c3d77c9Fariborz Jahanian 30