mirror of
https://github.com/Zenithsiz/ftmemsim-valgrind.git
synced 2026-02-03 18:13:01 +00:00
Add a test for bug 359133 Assertion 'eltSzB <= ddpa->poolSzB' failed
Test case provided by David Hallas git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15799
This commit is contained in:
parent
68dd2dd0b5
commit
76002f0b47
@ -107,6 +107,7 @@ EXTRA_DIST = \
|
||||
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 @@ check_PROGRAMS = \
|
||||
custom_alloc \
|
||||
custom-overlap \
|
||||
demangle \
|
||||
big_debuginfo_symbol \
|
||||
deep-backtrace \
|
||||
describe-block \
|
||||
doublefree error_counts errs1 exitprog execve1 execve2 erringfds \
|
||||
@ -426,6 +428,9 @@ leak_cpp_interior_SOURCES = leak_cpp_interior.cpp
|
||||
|
||||
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
|
||||
|
||||
|
||||
234
memcheck/tests/big_debuginfo_symbol.cpp
Normal file
234
memcheck/tests/big_debuginfo_symbol.cpp
Normal file
@ -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 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;
|
||||
}
|
||||
0
memcheck/tests/big_debuginfo_symbol.stderr.exp
Normal file
0
memcheck/tests/big_debuginfo_symbol.stderr.exp
Normal file
2
memcheck/tests/big_debuginfo_symbol.vgtest
Normal file
2
memcheck/tests/big_debuginfo_symbol.vgtest
Normal file
@ -0,0 +1,2 @@
|
||||
prog: big_debuginfo_symbol
|
||||
vgopts: -q
|
||||
Loading…
x
Reference in New Issue
Block a user