-fplan9-extensions
GCC でアクティブ化された匿名の構造体/共用体の動作を Clang で動作させるにはどうすればよいですか?
指定された初期化子を使用しているときに、匿名のメンバーに割り当てるときにエラーが発生し、匿名メンバーの型への自由なキャストが得られません。これらは両方とも、前述の拡張機能が有効になっている GCC で動作します。
typedef struct {int hi;} Embedded;
typedef struct {Embedded;} Encapsulating;
Encapsulating poo = {.hi = 3;};
error: field designator 'hi' does not refer to any field in type 'Encapsulating'
void takes_embedded(Embedded *m);
takes_embedded(&poo);
warning: incompatible pointer types passing 'Encapsuating *' to parameter of type 'Embedded *'