summaryrefslogtreecommitdiffstats
path: root/clang/test/Misc
diff options
context:
space:
mode:
authorArgyrios Kyrtzidis <akyrtzi@gmail.com>2015-08-06 18:46:36 +0000
committerArgyrios Kyrtzidis <akyrtzi@gmail.com>2015-08-06 18:46:36 +0000
commite26aea5b290165f3bccffab662a706d4a56f7540 (patch)
tree944d0fdb2845ca762862e3edcbb473891eeea9ee /clang/test/Misc
parent6443cce233c5f08e41cb23616072c1764926a8c3 (diff)
downloadbcm5719-llvm-e26aea5b290165f3bccffab662a706d4a56f7540.tar.gz
bcm5719-llvm-e26aea5b290165f3bccffab662a706d4a56f7540.zip
[Frontend] Fix crash when serializing diagnostics with really long text.
rdar://21896690 llvm-svn: 244245
Diffstat (limited to 'clang/test/Misc')
-rw-r--r--clang/test/Misc/serialized-diags-really-long-text.cpp30
1 files changed, 30 insertions, 0 deletions
diff --git a/clang/test/Misc/serialized-diags-really-long-text.cpp b/clang/test/Misc/serialized-diags-really-long-text.cpp
new file mode 100644
index 00000000000..2cdd50994a3
--- /dev/null
+++ b/clang/test/Misc/serialized-diags-really-long-text.cpp
@@ -0,0 +1,30 @@
+// Make sure that diagnostics serialization does not crash with a really long diagnostic text.
+
+// RUN: not %clang_cc1 -std=c++11 %s -serialize-diagnostic-file %t.dia
+// RUN: c-index-test -read-diagnostics %t.dia 2>&1 | FileCheck %s
+
+typedef class AReallyLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooongName {} alias;
+
+template <int N, typename ...T>
+struct MyTS {
+ typedef MyTS<N-1, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias,
+ alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias,
+ alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias,
+ alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias,
+ alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias,
+ alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias,
+ alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias,
+ alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias,
+ alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, alias, T...> type;
+ static type callme() {
+ return type::callme();
+ }
+};
+
+template <typename ...T>
+struct MyTS<0, T...> {};
+
+void foo() {
+ // CHECK: [[@LINE+1]]:20: note: in instantiation of member function
+ int e = MyTS<2>::callme();
+}
OpenPOWER on IntegriCloud