diff options
author | Patrick Walton <pcwalton@fb.com> | 2021-07-30 19:41:10 -0700 |
---|---|---|
committer | Emilio Cobos Álvarez <emilio@crisal.io> | 2021-07-31 13:33:42 +0200 |
commit | d1d2eb62d36c462416a606c680e6b4ba4716daab (patch) | |
tree | eff269a021df4cacbd8d84d3d8d4a8d3e40aace7 /tests/headers | |
parent | 546454625caa66eddc9400bc7a1048edf2a9fbc8 (diff) |
Don't assume that an inner class declaration always immediately yields a
complete type.
It might not if we had to avoid recursion when processing types. Detect that
case and bail out. This bug was being masked by the fact that we didn't always
find definitions for the recursion check and so it didn't trigger, but now that
this check is more reliable we have to be careful in more places.
The test case was reduced from the GCC STL allocator definition.
Diffstat (limited to 'tests/headers')
-rw-r--r-- | tests/headers/nested-template-typedef.hpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/tests/headers/nested-template-typedef.hpp b/tests/headers/nested-template-typedef.hpp new file mode 100644 index 00000000..8c83de5b --- /dev/null +++ b/tests/headers/nested-template-typedef.hpp @@ -0,0 +1,8 @@ +template<typename T> +class Foo { +public: + template<typename U> + struct Bar { + typedef Foo<U> FooU; + }; +}; |