summaryrefslogtreecommitdiffstats
path: root/clang/test
diff options
context:
space:
mode:
authorRichard Smith <richard-llvm@metafoo.co.uk>2015-07-01 23:19:58 +0000
committerRichard Smith <richard-llvm@metafoo.co.uk>2015-07-01 23:19:58 +0000
commitda6c234c39e6ddf3b1122f7add35972167e13c09 (patch)
treee78afdd5bb6aa1e4b7dba75195ef79d4146ef01f /clang/test
parent9729fb33156d3a6cbe7e55a389ac7dd501cc9dfe (diff)
downloadbcm5719-llvm-da6c234c39e6ddf3b1122f7add35972167e13c09.tar.gz
bcm5719-llvm-da6c234c39e6ddf3b1122f7add35972167e13c09.zip
[modules] Merging support for specializations of a function template. This very
rarely matters, but can affect whether two dependent types are canonically equivalent. llvm-svn: 241207
Diffstat (limited to 'clang/test')
-rw-r--r--clang/test/Modules/Inputs/submodules-merge-defs/defs.h8
-rw-r--r--clang/test/Modules/submodules-merge-defs.cpp2
2 files changed, 10 insertions, 0 deletions
diff --git a/clang/test/Modules/Inputs/submodules-merge-defs/defs.h b/clang/test/Modules/Inputs/submodules-merge-defs/defs.h
index bf720aaba33..bda0567c93a 100644
--- a/clang/test/Modules/Inputs/submodules-merge-defs/defs.h
+++ b/clang/test/Modules/Inputs/submodules-merge-defs/defs.h
@@ -86,3 +86,11 @@ namespace SeparateInline {
namespace TrailingAttributes {
template<typename T> struct X {} __attribute__((aligned(8)));
}
+
+namespace MergeFunctionTemplateSpecializations {
+ template<typename T> T f();
+ template<typename T> struct X {
+ template<typename U> using Q = decltype(f<T>() + U());
+ };
+ using xiq = X<int>::Q<int>;
+}
diff --git a/clang/test/Modules/submodules-merge-defs.cpp b/clang/test/Modules/submodules-merge-defs.cpp
index 2e771c1562b..92c784440b9 100644
--- a/clang/test/Modules/submodules-merge-defs.cpp
+++ b/clang/test/Modules/submodules-merge-defs.cpp
@@ -100,6 +100,8 @@ J<> post_j2;
FriendDefArg::Y<int> friend_def_arg;
FriendDefArg::D<> friend_def_arg_d;
+MergeFunctionTemplateSpecializations::X<int>::Q<char> xiqc;
+
#ifdef TEXTUAL
#include "use-defs.h"
void use_static_inline() { StaticInline::g({}); }
OpenPOWER on IntegriCloud