summaryrefslogtreecommitdiffstats
path: root/clang/test/Modules/cxx-templates.cpp
diff options
context:
space:
mode:
authorRichard Smith <richard-llvm@metafoo.co.uk>2015-08-31 22:17:11 +0000
committerRichard Smith <richard-llvm@metafoo.co.uk>2015-08-31 22:17:11 +0000
commit9ce2b45936896d28939c2d28860a9c9fb424c7d3 (patch)
tree881aad0deab058309d207b7e999c30820bedc171 /clang/test/Modules/cxx-templates.cpp
parent0518574a735fd41d7aa1a8f3457be9b790b5befd (diff)
downloadbcm5719-llvm-9ce2b45936896d28939c2d28860a9c9fb424c7d3.tar.gz
bcm5719-llvm-9ce2b45936896d28939c2d28860a9c9fb424c7d3.zip
[modules] Rework serialized DeclContext lookup table management. Instead of
walking the loaded ModuleFiles looking for lookup tables for the context, store them all in one place, and merge them together if we find we have too many (currently, more than 4). If we do merge, include the merged form in our serialized lookup table, so that downstream readers never need to look at our imports' tables. This gives a huge performance improvement to builds with very large numbers of modules (in some cases, more than a 2x speedup was observed). llvm-svn: 246497
Diffstat (limited to 'clang/test/Modules/cxx-templates.cpp')
-rw-r--r--clang/test/Modules/cxx-templates.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/clang/test/Modules/cxx-templates.cpp b/clang/test/Modules/cxx-templates.cpp
index 8e91b8247f2..ea6f05d3318 100644
--- a/clang/test/Modules/cxx-templates.cpp
+++ b/clang/test/Modules/cxx-templates.cpp
@@ -29,14 +29,14 @@ void g() {
f<int>();
f(); // expected-error {{no matching function}}
// expected-note@Inputs/cxx-templates-b.h:3 {{couldn't infer template argument}}
- // expected-note@Inputs/cxx-templates-b.h:4 {{requires single argument}}
+ // expected-note-re@Inputs/cxx-templates-a.h:4 {{requires {{single|1}} argument}}
N::f(0);
N::f<double>(1.0);
N::f<int>();
N::f(); // expected-error {{no matching function}}
// expected-note@Inputs/cxx-templates-b.h:6 {{couldn't infer template argument}}
- // expected-note@Inputs/cxx-templates-b.h:7 {{requires single argument}}
+ // expected-note-re@Inputs/cxx-templates-a.h:7 {{requires {{single|1}} argument}}
template_param_kinds_1<0>(); // ok, from cxx-templates-a.h
template_param_kinds_1<int>(); // ok, from cxx-templates-b.h
@@ -179,10 +179,14 @@ namespace Std {
// CHECK-GLOBAL: DeclarationName 'f'
// CHECK-GLOBAL-NEXT: |-FunctionTemplate {{.*}} 'f'
+// CHECK-GLOBAL-NEXT: |-FunctionTemplate {{.*}} 'f'
+// CHECK-GLOBAL-NEXT: |-FunctionTemplate {{.*}} 'f'
// CHECK-GLOBAL-NEXT: `-FunctionTemplate {{.*}} 'f'
// CHECK-NAMESPACE-N: DeclarationName 'f'
// CHECK-NAMESPACE-N-NEXT: |-FunctionTemplate {{.*}} 'f'
+// CHECK-NAMESPACE-N-NEXT: |-FunctionTemplate {{.*}} 'f'
+// CHECK-NAMESPACE-N-NEXT: |-FunctionTemplate {{.*}} 'f'
// CHECK-NAMESPACE-N-NEXT: `-FunctionTemplate {{.*}} 'f'
// CHECK-DUMP: ClassTemplateDecl {{.*}} <{{.*[/\\]}}cxx-templates-common.h:1:1, {{.*}}> col:{{.*}} in cxx_templates_common SomeTemplate
OpenPOWER on IntegriCloud