cvsuser     03/01/21 06:49:47

  Modified:    languages/imcc pbc.c
               languages/imcc/t/syn eval.t
  Log:
  imcc check intersegment branches
  
  Revision  Changes    Path
  1.14      +5 -0      parrot/languages/imcc/pbc.c
  
  Index: pbc.c
  ===================================================================
  RCS file: /cvs/public/parrot/languages/imcc/pbc.c,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -w -r1.13 -r1.14
  --- pbc.c     21 Jan 2003 12:28:51 -0000      1.13
  +++ pbc.c     21 Jan 2003 14:49:43 -0000      1.14
  @@ -589,6 +589,11 @@
                   debug(1, "branch label %d jump %d %s %d\n",
                           npc, label->color, addr->name,addr->color);
               }
  +            else if (strcmp(ins->op, "bsr") && strcmp(ins->op, "set_addr")) {
  +                /* TODO make intersegment branch */
  +                fatal(1, "e_pbc_emit", "label not found for '%s'\n",
  +                            addr->name);
  +            }
           }
           /* add debug line info */
           if (Interp_flags_TEST(interpreter, PARROT_DEBUG_FLAG)) {
  
  
  
  1.2       +32 -1     parrot/languages/imcc/t/syn/eval.t
  
  Index: eval.t
  ===================================================================
  RCS file: /cvs/public/parrot/languages/imcc/t/syn/eval.t,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -w -r1.1 -r1.2
  --- eval.t    16 Jan 2003 17:27:03 -0000      1.1
  +++ eval.t    21 Jan 2003 14:49:46 -0000      1.2
  @@ -1,6 +1,6 @@
   #!perl
   use strict;
  -use TestCompiler tests => 2;
  +use TestCompiler tests => 3;
   use Test::More qw(skip);
   
   ##############################
  @@ -37,3 +37,34 @@
   42
   back
   OUT
  +
  +SKIP: {
  +  skip("not yet: jump to different code seg", 1);
  +output_is(<<'CODE', <<'OUT', "intersegment branch");
  +# #!/usr/bin/perl -w
  +# my $i= 5;
  +# LAB:
  +#    $i++;
  +#    eval("goto LAB if ($i==6)");
  +#    print "$i\n";
  +#
  +# 7
  +#####
  +
  +.sub _test
  +    I1 = 5
  +    $S0 = ".sub _e\nif I1 == 6 goto LAB\nend\n.end\n"
  +    compreg P2, "PIR"
  +    compile P0, P2, $S0
  +LAB:
  +    inc I1
  +    invoke
  +    print I1
  +    print "\n"
  +    end
  +.end
  +CODE
  +7
  +OUT
  +}
  +
  
  
  


Reply via email to