id	summary	reporter	owner	description	type	status	priority	milestone	component	version	severity	resolution	keywords	cc	lang	patch	platform
219	t/tools/pmc2cutils/04-dump_pmc.t, t/tools/pmc2cutils/05-gen_c.t:  Test failures	jkeenan	cotto	"Changes made between 35932 and 35937 have started to cause failures in two of the build tools test files found in ''t/tools/pmc2cutils/''.  Please see attached file for output of ''prove'' on 04-dump_pmc.t and 05-gen_c.t.

A quick scan of the changes in this time frame suggests that the most likely suspect is this revision to ''lib/Parrot/Pmc2c/Parser.pm''.
{{{
$ svn diff -r 35932:35937 ./lib  
Index: lib/Parrot/Pmc2c/Parser.pm
===================================================================
--- lib/Parrot/Pmc2c/Parser.pm  (revision 35932)
+++ lib/Parrot/Pmc2c/Parser.pm  (revision 35937)
@@ -76,7 +76,7 @@
     my $lineno = count_newlines($preamble) + $chewed_lines + 1;
     my $class_init;
 
-    ($lineno, $pmcbody)    = find_attrs(  $pmc, $pmcbody, $lineno, $filename);
+    ($lineno, $pmcbody)    = find_attrs(  $pmc, $pmcbody, $lineno, $filename, $pmc2cMain);
     ($lineno, $class_init) = find_methods($pmc, $pmcbody, $lineno, $filename);
 
     $pmc->postamble( Parrot::Pmc2c::Emitter->text( $post, $filename, $lineno ) );
@@ -90,8 +90,27 @@
 }
 
 sub find_attrs {
-    my ($pmc, $pmcbody, $lineno, $filename) = @_;
+    my ($pmc, $pmcbody, $lineno, $filename, $pmc2cMain) = @_;
 
+    #prepend parent ATTRs to this PMC's ATTR list, if possible
+    my $got_attrs_from = '';
+    foreach my $parent ( @{ $pmc->{parents} } ) {
+
+        my $parent_dump = $pmc2cMain->read_dump( lc($parent) . '.dump' );
+
+        if ( $got_attrs_from ne '' && $parent_dump->{has_attribute} ) {
+            die ""$filename is trying to extend $got_attrs_from and $parent, "".
+                ""but both these PMCs have ATTRs."";
+        }
+
+        if ( $parent_dump->{has_attribute} ) {
+            $got_attrs_from = $parent;
+            foreach my $parent_attrs ( @{ $parent_dump->{attributes} } ) {
+                $pmc->add_attribute($parent_attrs);
+            }
+        }
+    }
+
     # backreferences here are all +1 because below the qr is wrapped in quotes
     my $attr_re = qr{
         ^
}}}

Here's the most recent ''svn log'' on that file:
{{{
------------------------------------------------------------------------
r35934 | cotto | 2009-01-23 20:18:43 -0500 (Fri, 23 Jan 2009) | 2 lines

[pmc] make ATTRs implicitly be passed down the inheritance chain
}}}"	bug	closed	normal		configure		medium	fixed					
