summaryrefslogtreecommitdiffstats
path: root/clang
diff options
context:
space:
mode:
authorRichard Smith <richard-llvm@metafoo.co.uk>2015-06-17 22:13:23 +0000
committerRichard Smith <richard-llvm@metafoo.co.uk>2015-06-17 22:13:23 +0000
commitafe800c45672199ac1c7de300345126d0dc30087 (patch)
treee4028fe1c8b3372745f5e4cd3bfed37dc4db3c0b /clang
parent9170efdc0d6274b0d7438dcee929243fcca77e95 (diff)
downloadbcm5719-llvm-afe800c45672199ac1c7de300345126d0dc30087.tar.gz
bcm5719-llvm-afe800c45672199ac1c7de300345126d0dc30087.zip
[modules] Fix typo in default argument merging.
llvm-svn: 239954
Diffstat (limited to 'clang')
-rw-r--r--clang/lib/Serialization/ASTReaderDecl.cpp6
-rw-r--r--clang/test/Modules/Inputs/submodules-merge-defs/defs.h2
-rw-r--r--clang/test/Modules/Inputs/template-default-args/c.h1
-rw-r--r--clang/test/Modules/submodules-merge-defs.cpp1
-rw-r--r--clang/test/Modules/template-default-args.cpp2
5 files changed, 9 insertions, 3 deletions
diff --git a/clang/lib/Serialization/ASTReaderDecl.cpp b/clang/lib/Serialization/ASTReaderDecl.cpp
index 9cb145e4b48..548ce9c4a4c 100644
--- a/clang/lib/Serialization/ASTReaderDecl.cpp
+++ b/clang/lib/Serialization/ASTReaderDecl.cpp
@@ -2924,13 +2924,13 @@ static void inheritDefaultTemplateArguments(ASTContext &Context,
NamedDecl *ToParam = ToTP->getParam(N - I - 1);
if (auto *FTTP = dyn_cast<TemplateTypeParmDecl>(FromParam)) {
- if (inheritDefaultTemplateArgument(Context, FTTP, ToParam))
+ if (!inheritDefaultTemplateArgument(Context, FTTP, ToParam))
break;
} else if (auto *FNTTP = dyn_cast<NonTypeTemplateParmDecl>(FromParam)) {
- if (inheritDefaultTemplateArgument(Context, FNTTP, ToParam))
+ if (!inheritDefaultTemplateArgument(Context, FNTTP, ToParam))
break;
} else {
- if (inheritDefaultTemplateArgument(
+ if (!inheritDefaultTemplateArgument(
Context, cast<TemplateTemplateParmDecl>(FromParam), ToParam))
break;
}
diff --git a/clang/test/Modules/Inputs/submodules-merge-defs/defs.h b/clang/test/Modules/Inputs/submodules-merge-defs/defs.h
index 02a4ae946cd..247b05c4708 100644
--- a/clang/test/Modules/Inputs/submodules-merge-defs/defs.h
+++ b/clang/test/Modules/Inputs/submodules-merge-defs/defs.h
@@ -66,9 +66,11 @@ namespace FriendDefArg {
template<typename = int> struct A;
template<int = 0> struct B;
template<template<typename> class = A> struct C;
+ template<typename = int, int = 0, template<typename> class = A> struct D {};
template<typename U> struct Y {
template<typename> friend struct A;
template<int> friend struct B;
template<template<typename> class> friend struct C;
+ template<typename, int, template<typename> class> friend struct D;
};
}
diff --git a/clang/test/Modules/Inputs/template-default-args/c.h b/clang/test/Modules/Inputs/template-default-args/c.h
index c204f313367..2946013b613 100644
--- a/clang/test/Modules/Inputs/template-default-args/c.h
+++ b/clang/test/Modules/Inputs/template-default-args/c.h
@@ -1 +1,2 @@
template<typename T = int> struct F;
+template<typename T, typename U> struct I;
diff --git a/clang/test/Modules/submodules-merge-defs.cpp b/clang/test/Modules/submodules-merge-defs.cpp
index ee5e4fe1bfd..38b3147adec 100644
--- a/clang/test/Modules/submodules-merge-defs.cpp
+++ b/clang/test/Modules/submodules-merge-defs.cpp
@@ -82,3 +82,4 @@ J<> post_j;
template<typename T, int N, template<typename> class K> struct J;
J<> post_j2;
FriendDefArg::Y<int> friend_def_arg;
+FriendDefArg::D<> friend_def_arg_d;
diff --git a/clang/test/Modules/template-default-args.cpp b/clang/test/Modules/template-default-args.cpp
index 9b2865421f2..dc44534302b 100644
--- a/clang/test/Modules/template-default-args.cpp
+++ b/clang/test/Modules/template-default-args.cpp
@@ -7,6 +7,7 @@ template<typename T> struct C;
template<typename T = int> struct D;
template<typename T = int> struct E {};
template<typename T> struct H {};
+template<typename T = int, typename U = int> struct I {};
#include "b.h"
@@ -30,3 +31,4 @@ G<> g; // expected-error {{default argument of 'G' must be imported from module
// expected-note@a.h:6 {{default argument declared here}}
H<> h; // expected-error {{default argument of 'H' must be imported from module 'X.A' before it is required}}
// expected-note@a.h:7 {{default argument declared here}}
+I<> i;
OpenPOWER on IntegriCloud