custom-overlap.stderr.exp custom-overlap.vgtest \
deep-backtrace.vgtest deep-backtrace.stderr.exp \
demangle.stderr.exp demangle.vgtest \
+ big_debuginfo_symbol.stderr.exp big_debuginfo_symbol.vgtest \
describe-block.stderr.exp describe-block.vgtest \
descr_belowsp.vgtest descr_belowsp.stderr.exp \
doublefree.stderr.exp doublefree.vgtest \
custom_alloc \
custom-overlap \
demangle \
+ big_debuginfo_symbol \
deep-backtrace \
describe-block \
doublefree error_counts errs1 exitprog execve1 execve2 erringfds \
demangle_SOURCES = demangle.cpp
+big_debuginfo_symbol_SOURCES = big_debuginfo_symbol.cpp
+big_debuginfo_symbol__CXXFLAGS = $(AM_CXXFLAGS) -std=c++11
+
bug340392_CFLAGS = $(AM_CFLAGS) -O3
dw4_CFLAGS = $(AM_CFLAGS) -gdwarf-4 -fdebug-types-section
--- /dev/null
+// Written by David Hallas to trigger this bug in Valgrind:
+// https://bugs.kde.org/show_bug.cgi?id=359133
+
+#define CONCAT2(x, y) x##y
+#define CONCAT(x, y) CONCAT2(x, y)
+
+#define AllLetters ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyzABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyzABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyzABCDEFGHIJKLMNOPQRSTUVXYZABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyzABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyzABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyzABCDEFGHIJKLMNOPQRSTUVXYZABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyzABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyzABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyzABCDEFGHIJKLMNOPQRSTUVXYZABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyzABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyzABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyzABCDEFGHIJKLMNOPQRSTUVXYZABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyzABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyzABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyzABCDEFGHIJKLMNOPQRSTUVXYZABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyzABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyzABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyzABCDEFGHIJKLMNOPQRSTUVXYZABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyzABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyzABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyzABCDEFGHIJKLMNOPQRSTUVXYZABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyzABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyzABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyzABCDEFGHIJKLMNOPQRSTUVXYZ
+#define TemplateName(name) CONCAT(AllLetters, name)
+#define TemplateDef(name) class TemplateName(name) {};
+
+TemplateDef(1)
+TemplateDef(2)
+TemplateDef(3)
+TemplateDef(4)
+TemplateDef(5)
+TemplateDef(6)
+TemplateDef(7)
+TemplateDef(8)
+TemplateDef(9)
+TemplateDef(10)
+TemplateDef(11)
+TemplateDef(12)
+TemplateDef(13)
+TemplateDef(14)
+TemplateDef(15)
+TemplateDef(16)
+TemplateDef(17)
+TemplateDef(18)
+TemplateDef(19)
+TemplateDef(20)
+TemplateDef(21)
+TemplateDef(22)
+TemplateDef(23)
+TemplateDef(24)
+TemplateDef(25)
+TemplateDef(26)
+TemplateDef(27)
+TemplateDef(28)
+TemplateDef(29)
+TemplateDef(30)
+TemplateDef(31)
+TemplateDef(32)
+TemplateDef(33)
+TemplateDef(34)
+TemplateDef(35)
+TemplateDef(36)
+TemplateDef(37)
+TemplateDef(38)
+TemplateDef(39)
+TemplateDef(40)
+TemplateDef(41)
+TemplateDef(42)
+TemplateDef(43)
+TemplateDef(44)
+TemplateDef(45)
+TemplateDef(46)
+TemplateDef(47)
+TemplateDef(48)
+TemplateDef(49)
+TemplateDef(50)
+
+class MyTemplate {
+public:
+ template<typename... T>
+ void foo();
+};
+
+template<>
+void MyTemplate::foo<
+ TemplateName(1),
+ TemplateName(2),
+ TemplateName(3),
+ TemplateName(4),
+ TemplateName(5),
+ TemplateName(6),
+ TemplateName(7),
+ TemplateName(8),
+ TemplateName(9),
+ TemplateName(10),
+ TemplateName(11),
+ TemplateName(12),
+ TemplateName(13),
+ TemplateName(14),
+ TemplateName(15),
+ TemplateName(16),
+ TemplateName(17),
+ TemplateName(18),
+ TemplateName(19),
+ TemplateName(20),
+ TemplateName(21),
+ TemplateName(22),
+ TemplateName(23),
+ TemplateName(24),
+ TemplateName(25),
+ TemplateName(26),
+ TemplateName(27),
+ TemplateName(28),
+ TemplateName(29),
+ TemplateName(30),
+ TemplateName(31),
+ TemplateName(32),
+ TemplateName(33),
+ TemplateName(34),
+ TemplateName(35),
+ TemplateName(36),
+ TemplateName(37),
+ TemplateName(38),
+ TemplateName(39),
+ TemplateName(40),
+ TemplateName(41),
+ TemplateName(42),
+ TemplateName(43),
+ TemplateName(44),
+ TemplateName(45),
+ TemplateName(46),
+ TemplateName(47),
+ TemplateName(48),
+ TemplateName(49),
+ TemplateName(50)
+>();
+
+template<>
+void MyTemplate::foo<
+ TemplateName(1),
+ TemplateName(2),
+ TemplateName(3),
+ TemplateName(4),
+ TemplateName(5),
+ TemplateName(6),
+ TemplateName(7),
+ TemplateName(8),
+ TemplateName(9),
+ TemplateName(10),
+ TemplateName(11),
+ TemplateName(12),
+ TemplateName(13),
+ TemplateName(14),
+ TemplateName(15),
+ TemplateName(16),
+ TemplateName(17),
+ TemplateName(18),
+ TemplateName(19),
+ TemplateName(20),
+ TemplateName(21),
+ TemplateName(22),
+ TemplateName(23),
+ TemplateName(24),
+ TemplateName(25),
+ TemplateName(26),
+ TemplateName(27),
+ TemplateName(28),
+ TemplateName(29),
+ TemplateName(30),
+ TemplateName(31),
+ TemplateName(32),
+ TemplateName(33),
+ TemplateName(34),
+ TemplateName(35),
+ TemplateName(36),
+ TemplateName(37),
+ TemplateName(38),
+ TemplateName(39),
+ TemplateName(40),
+ TemplateName(41),
+ TemplateName(42),
+ TemplateName(43),
+ TemplateName(44),
+ TemplateName(45),
+ TemplateName(46),
+ TemplateName(47),
+ TemplateName(48),
+ TemplateName(49),
+ TemplateName(50)
+>()
+{
+}
+
+int main(int argc, char* argv[])
+{
+ MyTemplate instance;
+ instance.foo<
+ TemplateName(1),
+ TemplateName(2),
+ TemplateName(3),
+ TemplateName(4),
+ TemplateName(5),
+ TemplateName(6),
+ TemplateName(7),
+ TemplateName(8),
+ TemplateName(9),
+ TemplateName(10),
+ TemplateName(11),
+ TemplateName(12),
+ TemplateName(13),
+ TemplateName(14),
+ TemplateName(15),
+ TemplateName(16),
+ TemplateName(17),
+ TemplateName(18),
+ TemplateName(19),
+ TemplateName(20),
+ TemplateName(21),
+ TemplateName(22),
+ TemplateName(23),
+ TemplateName(24),
+ TemplateName(25),
+ TemplateName(26),
+ TemplateName(27),
+ TemplateName(28),
+ TemplateName(29),
+ TemplateName(30),
+ TemplateName(31),
+ TemplateName(32),
+ TemplateName(33),
+ TemplateName(34),
+ TemplateName(35),
+ TemplateName(36),
+ TemplateName(37),
+ TemplateName(38),
+ TemplateName(39),
+ TemplateName(40),
+ TemplateName(41),
+ TemplateName(42),
+ TemplateName(43),
+ TemplateName(44),
+ TemplateName(45),
+ TemplateName(46),
+ TemplateName(47),
+ TemplateName(48),
+ TemplateName(49),
+ TemplateName(50)
+ >();
+ return 0;
+}
--- /dev/null
+prog: big_debuginfo_symbol
+vgopts: -q