This change makes it so that gigi uses a generic pointer type (ptr_type_node) for pointers to Taft Amendment types, which are kind of opaque pointer types. Tested on x86_64-suse-linux, applied on the mainline. However, this isn't sufficient for LTO's type canonical merging code, because the generic pointer type is the element type of an array instead of being used at top level, so the code issues the usual warning: /home/eric/svn/gcc/gcc/testsuite/gnat.dg/lto19_pkg.ads:7:13: warning: type of 'lto19_pkg__proc' does not match original declaration [-Wlto-type-mismatch] /home/eric/svn/gcc/gcc/testsuite/gnat.dg/lto19_pkg.adb:7:3: note: 'lto19_pkg__proc' was previously declared here /home/eric/svn/gcc/gcc/testsuite/gnat.dg/lto19_pkg.adb:7:3: note: code may be misoptimized unless -fno-strict-aliasing is used Jan, any idea on how to address this? 2016-07-14 Eric Botcazou * gcc-interface/decl.c (gnat_to_gnu_entity) : Also use the void pointer type if the designated type is incomplete and has no full view in LTO mode. : Adjust comment. : Likewise. * gcc-interface/trans.c (Call_to_gnu): Do not convert to the type of the actual if it is a dummy type. 2016-07-14 Eric Botcazou * gnat.dg/lto19.adb: New test. * gnat.dg/lto19_pkg.ad[sb]: New helper. -- Eric Botcazou