Add valgrind-3.9.0-anon-typedef.patch.
This commit is contained in:
parent
a9137e1e63
commit
02fda204af
73
valgrind-3.9.0-anon-typedef.patch
Normal file
73
valgrind-3.9.0-anon-typedef.patch
Normal file
@ -0,0 +1,73 @@
|
||||
commit 836b51a998fe520728aab7c5e1b156cadaa20c20
|
||||
Author: mjw <mjw@a5019735-40e9-0310-863c-91ae7b9d1cf9>
|
||||
Date: Sun Nov 24 17:19:35 2013 +0000
|
||||
|
||||
Bug 327916 - DW_TAG_typedef may have no name
|
||||
|
||||
We already accepted DW_TAG_typedef without a name for Ada. But g++ for
|
||||
OpenMP can also emit such nameless DW_TAG_typedefs. Just accept them.
|
||||
Also fix up anonymous enum and typedef printing in tytypes.c.
|
||||
|
||||
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13718 a5019735-40e9-0310-863c-91ae7b9d1cf9
|
||||
|
||||
diff --git a/coregrind/m_debuginfo/readdwarf3.c b/coregrind/m_debuginfo/readdwarf3.c
|
||||
index b0a7a92..f64a97b 100644
|
||||
--- a/coregrind/m_debuginfo/readdwarf3.c
|
||||
+++ b/coregrind/m_debuginfo/readdwarf3.c
|
||||
@@ -2926,19 +2926,17 @@ static void parse_type_DIE ( /*MOD*/XArray* /* of TyEnt */ tyents,
|
||||
= cook_die_using_form( cc, (UWord)cts.u.val, form );
|
||||
}
|
||||
}
|
||||
- /* Do we have something that looks sane? */
|
||||
- if (/* must have a name */
|
||||
- typeE.Te.TyTyDef.name == NULL
|
||||
- /* However gcc gnat Ada generates minimal typedef
|
||||
- such as the below => accept no name for Ada.
|
||||
- <6><91cc>: DW_TAG_typedef
|
||||
- DW_AT_abstract_ori: <9066>
|
||||
- */
|
||||
- && parser->language != 'A'
|
||||
- /* but the referred-to type can be absent */)
|
||||
- goto bad_DIE;
|
||||
- else
|
||||
- goto acquire_Type;
|
||||
+ /* Do we have something that looks sane?
|
||||
+ gcc gnat Ada generates minimal typedef
|
||||
+ such as the below
|
||||
+ <6><91cc>: DW_TAG_typedef
|
||||
+ DW_AT_abstract_ori: <9066>
|
||||
+ g++ for OMP can generate artificial functions that have
|
||||
+ parameters that refer to pointers to unnamed typedefs.
|
||||
+ See https://bugs.kde.org/show_bug.cgi?id=273475
|
||||
+ So we cannot require a name for a DW_TAG_typedef.
|
||||
+ */
|
||||
+ goto acquire_Type;
|
||||
}
|
||||
|
||||
if (dtag == DW_TAG_subroutine_type) {
|
||||
diff --git a/coregrind/m_debuginfo/tytypes.c b/coregrind/m_debuginfo/tytypes.c
|
||||
index 05df456..0fde46b 100644
|
||||
--- a/coregrind/m_debuginfo/tytypes.c
|
||||
+++ b/coregrind/m_debuginfo/tytypes.c
|
||||
@@ -265,8 +265,8 @@ void ML_(pp_TyEnt_C_ishly)( XArray* /* of TyEnt */ tyents,
|
||||
VG_(printf)("&&");
|
||||
break;
|
||||
case Te_TyEnum:
|
||||
- if (!ent->Te.TyEnum.name) goto unhandled;
|
||||
- VG_(printf)("enum %s", ent->Te.TyEnum.name);
|
||||
+ VG_(printf)("enum %s", ent->Te.TyEnum.name ? ent->Te.TyEnum.name
|
||||
+ : "<anonymous>" );
|
||||
break;
|
||||
case Te_TyStOrUn:
|
||||
VG_(printf)("%s %s",
|
||||
@@ -287,8 +287,8 @@ void ML_(pp_TyEnt_C_ishly)( XArray* /* of TyEnt */ tyents,
|
||||
}
|
||||
break;
|
||||
case Te_TyTyDef:
|
||||
- if (!ent->Te.TyTyDef.name) goto unhandled;
|
||||
- VG_(printf)("%s", ent->Te.TyTyDef.name);
|
||||
+ VG_(printf)("%s", ent->Te.TyTyDef.name ? ent->Te.TyTyDef.name
|
||||
+ : "<anonymous>" );
|
||||
break;
|
||||
case Te_TyFn:
|
||||
VG_(printf)("%s", "<function_type>");
|
@ -38,6 +38,9 @@ Patch7: valgrind-3.9.0-dwz-alt-buildid.patch
|
||||
# KDE#327284 - s390x VEX miscompilation of -march=z10 binary
|
||||
Patch8: valgrind-3.9.0-s390-risbg.patch
|
||||
|
||||
# KDE#327916 - DW_TAG_typedef may have no name
|
||||
Patch9: valgrind-3.9.0-anon-typedef.patch
|
||||
|
||||
%ifarch x86_64 ppc64
|
||||
# Ensure glibc{,-devel} is installed for both multilib arches
|
||||
BuildRequires: /lib/libc.so.6 /usr/lib/libc.so /lib64/libc.so.6 /usr/lib64/libc.so
|
||||
@ -134,6 +137,7 @@ Valgrind User Manual for details.
|
||||
%patch6 -p1
|
||||
%patch7 -p1
|
||||
%patch8 -p1
|
||||
%patch9 -p1
|
||||
|
||||
%build
|
||||
# We need to use the software collection compiler and binutils if available.
|
||||
@ -287,6 +291,9 @@ echo ===============END TESTING===============
|
||||
%endif
|
||||
|
||||
%changelog
|
||||
* Fri Nov 22 2013 Mark Wielaard <mjw@redhat.com>
|
||||
- Add valgrind-3.9.0-anon-typedef.patch.
|
||||
|
||||
* Wed Nov 20 2013 Mark Wielaard <mjw@redhat.com> - 3.9.0-2
|
||||
- Add valgrind-3.9.0-dwz-alt-buildid.patch.
|
||||
- Add valgrind-3.9.0-s390-risbg.patch.
|
||||
|
Loading…
Reference in New Issue
Block a user