diff options
Diffstat (limited to 'test/Index/Core/index-dependent-source.cpp')
-rw-r--r-- | test/Index/Core/index-dependent-source.cpp | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/test/Index/Core/index-dependent-source.cpp b/test/Index/Core/index-dependent-source.cpp index 8c097b935a37c..59c6286cd3dd9 100644 --- a/test/Index/Core/index-dependent-source.cpp +++ b/test/Index/Core/index-dependent-source.cpp @@ -141,3 +141,20 @@ void undefinedTemplateLookup2(UserOfUndefinedTemplateClass<T> &x) { x.lookup; typename UserOfUndefinedTemplateClass<T>::Type y; } + +template<typename T> struct Dropper; + +template<typename T> struct Trait; + +template<typename T> +struct Recurse : Trait<typename Dropper<T>::Type> { }; + +template<typename T> +struct Trait : Recurse<T> { +}; + +template<typename T> +void infiniteTraitRecursion(Trait<T> &t) { +// Shouldn't crash! + t.lookup; +} |