summaryrefslogtreecommitdiffstats
path: root/clang/test/Modules/Inputs
diff options
context:
space:
mode:
authorAxel Naumann <Axel.Naumann@cern.ch>2012-10-01 07:34:47 +0000
committerAxel Naumann <Axel.Naumann@cern.ch>2012-10-01 07:34:47 +0000
commita31dee2e04da90852e03628ca80949b992d4eabd (patch)
treedc205f185026c7adf96a3247b1edac1223ffd242 /clang/test/Modules/Inputs
parent4ca8ca916ea5bb3335081ffa099bcdf2db13f080 (diff)
downloadbcm5719-llvm-a31dee2e04da90852e03628ca80949b992d4eabd.tar.gz
bcm5719-llvm-a31dee2e04da90852e03628ca80949b992d4eabd.zip
Bring ASTReader and Writer into sync for the case where a canonical template specialization was written, which is non-canonical at the time of reading: force the reading of the ClassTemplateDecl if it was written.
The easiest way out is to store whether the decl was canonical at the time of writing. Add test. llvm-svn: 164927
Diffstat (limited to 'clang/test/Modules/Inputs')
-rw-r--r--clang/test/Modules/Inputs/redecl-merge-left.h6
-rw-r--r--clang/test/Modules/Inputs/redecl-merge-right.h6
-rw-r--r--clang/test/Modules/Inputs/redecl-merge-top.h5
3 files changed, 17 insertions, 0 deletions
diff --git a/clang/test/Modules/Inputs/redecl-merge-left.h b/clang/test/Modules/Inputs/redecl-merge-left.h
index b3a7ba83c1a..4bdd01570f6 100644
--- a/clang/test/Modules/Inputs/redecl-merge-left.h
+++ b/clang/test/Modules/Inputs/redecl-merge-left.h
@@ -82,6 +82,12 @@ extern double var3;
template<typename T> class Vector;
template<typename T> class Vector;
+
+template<typename T> class List;
+template<> class List<bool> {
+public:
+ void push_back(int);
+};
#endif
// Make sure this doesn't introduce an ambiguity-creating 'id' at the
diff --git a/clang/test/Modules/Inputs/redecl-merge-right.h b/clang/test/Modules/Inputs/redecl-merge-right.h
index de7aa08cfb2..695327674fb 100644
--- a/clang/test/Modules/Inputs/redecl-merge-right.h
+++ b/clang/test/Modules/Inputs/redecl-merge-right.h
@@ -83,6 +83,12 @@ template<typename T> class Vector {
public:
void push_back(const T&);
};
+
+template<typename T> class List;
+template<> class List<bool> {
+public:
+ void push_back(int);
+};
#endif
int ONE;
diff --git a/clang/test/Modules/Inputs/redecl-merge-top.h b/clang/test/Modules/Inputs/redecl-merge-top.h
index 519254ca221..7053936b2cc 100644
--- a/clang/test/Modules/Inputs/redecl-merge-top.h
+++ b/clang/test/Modules/Inputs/redecl-merge-top.h
@@ -17,4 +17,9 @@ struct S2;
#ifdef __cplusplus
template<typename T> class Vector;
+
+template<typename T> class List {
+public:
+ void push_back(T);
+};
#endif
OpenPOWER on IntegriCloud