|
From: <sv...@va...> - 2016-02-18 21:32:54
|
Author: philippe
Date: Thu Feb 18 21:32:46 2016
New Revision: 15799
Log:
Add a test for bug 359133 Assertion 'eltSzB <= ddpa->poolSzB' failed
Test case provided by David Hallas
Added:
trunk/memcheck/tests/big_debuginfo_symbol.cpp
trunk/memcheck/tests/big_debuginfo_symbol.stderr.exp
trunk/memcheck/tests/big_debuginfo_symbol.vgtest
Modified:
trunk/memcheck/tests/Makefile.am
Modified: trunk/memcheck/tests/Makefile.am
==============================================================================
--- trunk/memcheck/tests/Makefile.am (original)
+++ trunk/memcheck/tests/Makefile.am Thu Feb 18 21:32:46 2016
@@ -107,6 +107,7 @@
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 \
@@ -326,6 +327,7 @@
custom_alloc \
custom-overlap \
demangle \
+ big_debuginfo_symbol \
deep-backtrace \
describe-block \
doublefree error_counts errs1 exitprog execve1 execve2 erringfds \
@@ -426,6 +428,9 @@
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
Added: trunk/memcheck/tests/big_debuginfo_symbol.cpp
==============================================================================
--- trunk/memcheck/tests/big_debuginfo_symbol.cpp (added)
+++ trunk/memcheck/tests/big_debuginfo_symbol.cpp Thu Feb 18 21:32:46 2016
@@ -0,0 +1,234 @@
+// 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 ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyzABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyzABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyzABCDEFGHIJKLMNOPQRSTUVXYZABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyzABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyzABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyzABCDEFGHIJKLMNOPQRSTUVXYZABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyzABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyzABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyzABCDEFGHIJKLMNOPQRSTUVXYZABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyzABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyzABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyzABCDEFGHIJKLMNOPQRSTUVXYZABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyzABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyzABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyzABCDEFGHIJKLMNOPQRSTUVXYZABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyzABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrst
uvxyzABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyzABCDEFGHIJKLMNOPQRSTUVXYZABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyzABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyzABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyzABCDEFGHIJKLMNOPQRSTUVXYZABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyzABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyzABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyzABCDEFGHIJKLMNOPQRSTUVXYZ
+#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;
+}
Added: trunk/memcheck/tests/big_debuginfo_symbol.stderr.exp
==============================================================================
(empty)
Added: trunk/memcheck/tests/big_debuginfo_symbol.vgtest
==============================================================================
--- trunk/memcheck/tests/big_debuginfo_symbol.vgtest (added)
+++ trunk/memcheck/tests/big_debuginfo_symbol.vgtest Thu Feb 18 21:32:46 2016
@@ -0,0 +1,2 @@
+prog: big_debuginfo_symbol
+vgopts: -q
|