ftmemsim-valgrind/tests/filter_libc
Petar Jovanovic 1910188124 Add processing of sized delete operators into filter_libc
C++14 introduces sized delete operators and Valgrind support is added
by 6ef6f73. In addition, stderr filter which is used by Regtest should
be able to recognize this particular form in error report (just like
the other kinds of delete operators) in order to provide uniform output.

Fixes memcheck/tests/mismatches failure on non C++14 builds.

Patch by Aleksandar Rikalo.
2018-06-21 11:59:51 +02:00

46 lines
1.5 KiB
Perl
Executable File

#! /usr/bin/perl -w
use strict;
while (<>)
{
s/ __getsockname / getsockname /;
s/ __sigaction / sigaction /;
s/ __GI___/ __/;
s/ __([a-z]*)_nocancel / $1 /;
# "lib[S|s]ystem*" occurs on Darwin, "libsocket" on older Solaris/illumos.
s/\(in \/.*(libc|libSystem|libsystem|libsocket).*\)$/(in \/...libc...)/;
s/\(within \/.*(libc|libSystem|libsystem|libsocket).*\)$/(within \/...libc...)/;
# Filter out dynamic loader
s/ \(in \/.*ld-.*so\)$//;
# Remove the filename -- on some platforms (eg. Linux) it will be in
# libc, on some (eg. Darwin) it will be in the main executable.
s/\(below main\) \(.+\)$/(below main)/;
# filter out the exact libc-start.c:### line number. (ppc64*)
s/\(libc-start.c:[0-9]*\)$/(in \/...libc...)/;
# Merge the different C++ operator variations.
s/(at.*)__builtin_new/$1...operator new.../;
s/(at.*)operator new\(unsigned(| int| long)\)/$1...operator new.../;
s/(at.*)__builtin_vec_new/$1...operator new.../;
s/(at.*)operator new\[\]\(unsigned(| int| long)\)/$1...operator new[].../;
s/(at.*)__builtin_delete/$1...operator delete.../;
s/(at.*)operator delete\(void\*(, unsigned(| int| long))?\)/$1...operator delete.../;
s/(at.*)__builtin_vec_delete/$1...operator delete[].../;
s/(at.*)operator delete\[\]\(void\*\)/$1...operator delete[].../;
# Some glibc versions complain about unexpected futex syscall errors.
s/The futex facility returned an unexpected error code.//;
print;
}
exit 0;