https://gcc.gnu.org/bugzilla/show_bug.cgi?id=123728
--- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Basically ParameterizedTestFactory<Test> does not have internal linkage as Test
does not internal linkage.
If another source file has:
```
namespace { struct LocalEnum {}; }
struct Test {
typedef LocalEnum ParamType;
static void AddToRegistry() {
TestMetaFactory<Test> factory;
}
};
```
Then TestMetaFactory<Test>::ParamType would have 2 different types as LocalEnum
in both TUs have internal linkage.