112a9d9c8Sopenharmony_ci// bindgen-flags: --enable-cxx-namespaces --opaque-type 'zoidberg::Template<zoidberg::Bar>' --with-derive-hash --with-derive-partialeq --with-derive-eq -- -std=c++14 212a9d9c8Sopenharmony_ci 312a9d9c8Sopenharmony_cinamespace zoidberg { 412a9d9c8Sopenharmony_ci 512a9d9c8Sopenharmony_citemplate <typename T> 612a9d9c8Sopenharmony_ciclass Template { 712a9d9c8Sopenharmony_ci T member; 812a9d9c8Sopenharmony_ci}; 912a9d9c8Sopenharmony_ci 1012a9d9c8Sopenharmony_cistruct Foo { 1112a9d9c8Sopenharmony_ci char c; 1212a9d9c8Sopenharmony_ci}; 1312a9d9c8Sopenharmony_ci 1412a9d9c8Sopenharmony_cistruct Bar { 1512a9d9c8Sopenharmony_ci int i; 1612a9d9c8Sopenharmony_ci}; 1712a9d9c8Sopenharmony_ci 1812a9d9c8Sopenharmony_ciclass ContainsInstantiation { 1912a9d9c8Sopenharmony_ci Template<Foo> not_opaque; 2012a9d9c8Sopenharmony_ci}; 2112a9d9c8Sopenharmony_ci 2212a9d9c8Sopenharmony_ciclass ContainsOpaqueInstantiation { 2312a9d9c8Sopenharmony_ci // We should not generate a layout test for this instantiation, and it 2412a9d9c8Sopenharmony_ci // should appear as an opaque blob of bytes in 2512a9d9c8Sopenharmony_ci // `ContainsOpaqueInstantiation`'s type definition. 2612a9d9c8Sopenharmony_ci Template<Bar> opaque; 2712a9d9c8Sopenharmony_ci}; 2812a9d9c8Sopenharmony_ci 2912a9d9c8Sopenharmony_ci} 30