This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[PATCH] prune warn_compact_unwind warnings on darwin
- From: Jack Howarth <howarth at bromo dot med dot uc dot edu>
- To: gcc-patches at gcc dot gnu dot org
- Cc: mikestump at comcast dot net, iains at gcc dot gnu dot org
- Date: Sat, 12 Mar 2011 16:01:05 -0500
- Subject: [PATCH] prune warn_compact_unwind warnings on darwin
Xcode 4.0's linker now defaults on...
-warn_compact_unwind
When producing a final linked image, the linker processes the __eh_frame section and produces an
__unwind_info section. Most FDE entries in the __eh_frame can be represented by a 32-bit value in
the __unwind_info section. The option issues a warning for any function whose FDE cannot be
expressed in the compact unwind format.
regardless of whether -no_compact_unwind is passed to the linker. This results in many bogus excess error failures
in the testsuite due to these bogus warnings of the form...
ld: warning: could not create compact unwind for I<int>::operator+(int =const&) const: dwarf uses DW_CFA_GNU_args_size
The attached patch adds a regsub statement to prune.exp to suppress this testsuite noise on darwin when linking
with Xcode 4.0. Tested on x86_64-apple-darwin10.
Jack
2011-03-12 Jack Howarth <howarth@bromo.med.uc.edu>
libstdc++-v3/
* testsuite/lib/prune.exp: Prune "could not create compact unwind for" warnings.
gcc/
* testsuite/lib/prune.exp: Ditto.
Index: libstdc++-v3/testsuite/lib/prune.exp
===================================================================
--- libstdc++-v3/testsuite/lib/prune.exp (revision 170906)
+++ libstdc++-v3/testsuite/lib/prune.exp (working copy)
@@ -55,6 +55,9 @@ proc libstdc++-dg-prune { system text }
regsub -all "(^|\n)\[^\n\]*warning: DWARFDebugInfoEntry::AppendDependants\[^\n\]*AT_\[^\n\]*_bound\[^\n\]*FORM_ref4\[^\n\]*" $text "" text
regsub -all "(^|\n)\[^\n\]*warning:\[^\n\]*TAG_variable: AT_location\[^\n\]*didn't have valid function low pc\[^\n\]*" $text "" text
+ # Ignore harmless warnings from Xcode 4.0.
+ regsub -all "(^|\n)\[^\n\]*ld: warning: could not create compact unwind for\[^\n\]*" $text "" text
+
foreach p $additional_prunes {
if { [string length $p] > 0 } {
# Following regexp matches a complete line containing $p.
Index: gcc/testsuite/lib/prune.exp
===================================================================
--- gcc/testsuite/lib/prune.exp (revision 170906)
+++ gcc/testsuite/lib/prune.exp (working copy)
@@ -56,6 +56,9 @@ proc prune_gcc_output { text } {
regsub -all "(^|\n)\[^\n\]*ld: warning: can't add line info to anonymous symbol\[^\n\]*" $text "" text
regsub -all "(^|\n)\[^\n\]*warning: DWARFDebugInfoEntry::AppendDependants\[^\n\]*AT_\[^\n\]*_bound\[^\n\]*FORM_ref4\[^\n\]*" $text "" text
regsub -all "(^|\n)\[^\n\]*warning:\[^\n\]*TAG_variable: AT_location\[^\n\]*didn't have valid function low pc\[^\n\]*" $text "" text
+
+ # Ignore harmless warnings from Xcode 4.0.
+ regsub -all "(^|\n)\[^\n\]*ld: warning: could not create compact unwind for\[^\n\]*" $text "" text
#send_user "After:$text\n"