112a9d9c8Sopenharmony_ci// bindgen-flags: --opaque-type ".*" --allowlist-function=foo  --with-derive-hash --with-derive-partialeq --with-derive-eq
212a9d9c8Sopenharmony_ci
312a9d9c8Sopenharmony_ciclass Container;
412a9d9c8Sopenharmony_ci
512a9d9c8Sopenharmony_ci// The allowlist tracing should reach the Container type, even though it's
612a9d9c8Sopenharmony_ci// marked as opaque.
712a9d9c8Sopenharmony_civoid foo(Container* c);
812a9d9c8Sopenharmony_ci
912a9d9c8Sopenharmony_citemplate<typename T>
1012a9d9c8Sopenharmony_ciclass Wat {
1112a9d9c8Sopenharmony_ci  T foo;
1212a9d9c8Sopenharmony_ci};
1312a9d9c8Sopenharmony_ci
1412a9d9c8Sopenharmony_ciclass OtherOpaque {
1512a9d9c8Sopenharmony_ci  int bar;
1612a9d9c8Sopenharmony_ci};
1712a9d9c8Sopenharmony_ci
1812a9d9c8Sopenharmony_ciclass Container {
1912a9d9c8Sopenharmony_ci  Wat<int> bar;
2012a9d9c8Sopenharmony_ci  OtherOpaque baz;
2112a9d9c8Sopenharmony_ci};
22