// { dg-lto-do link } // { dg-lto-options {{-O0 -flto}} } /* We need -O0 to avoid the "Environment" locals in the test functions from being optimized away. */ struct Environment { // { dg-lto-warning "8: type 'struct Environment' violates the C\\+\\+ One Definition Rule" } struct AsyncHooks { // { dg-lto-warning "10: type 'struct AsyncHooks' violates the C\\+\\+ One Definition Rule" } int providers_[2]; // { dg-lto-message "the first difference of corresponding definitions is field 'providers_'" } }; AsyncHooks async_hooks_; }; void fn2() { Environment a; }