This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [tree-ssa mudflap] another segfault


"Frank Ch. Eigler" wrote:
> 
> Hi -
> 
> On Fri, Jun 13, 2003 at 10:41:17AM +1000, Eyal Lebedinsky wrote:
> > I am still having a [cc1] crash (off cvs). So far it proved hard to
> > track. It needs '-fmudflapth' to happen.
> > [...]
> > apic.c: In function `_GLOBAL__I_sm0v03_mudflap':
> > apic.c:0: internal compiler error: Segmentation fault
> > Please submit a full bug report,
> > with preprocessed source if appropriate.
> > See <URL:http://gcc.gnu.org/bugs.html> for instructions.
> > [...]
> > What compiler tracing can I enable in order to produce more
> > details to assist (someone in the know) in debugging this
> > issue? [...]
> 
> Well, there is "-fdump-tree-mudflap".  But what one would really
> need is either your input file (so one can reproduce the problem),
> or a stack traceback.  You can get the latter yourself: just run
> gcc with the "-v" flag, and look for the subcommand invocation of
> "cc1".  When that piece is run by hand, under a debugger
> ("gdb -args cc1 ...."), you should be able to get a traceback at
> the moment of the crash.

-fdump-tree-mudflap generated an 8MB file apic.c.t16.mudflap. Would
this help by itself? I attached the last function from it.

The command is
==============
/data2/usr/local/gcc-mudflap-20030613-002400/bin/../lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/cc1
	-quiet -v -I. -I/ssa/builds/20030613-mfi/h -iprefix

/data2/usr/local/gcc-mudflap-20030613-002400/bin/../lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/
	-D_XOPEN_SOURCE=1 -D_GNU_SOURCE=1 -DSSABUILDMUDFLAP
-DSSABUILDMUDFLAP_WRAPPED apic.c -D_MUDFLAP
	-D_MUDFLAPTH -include mf-runtime.h -quiet -dumpbase apic.c -ansi
-auxbase apic -g -O0 -W -Wall
	-Wshadow -Wpointer-arith -Wcast-qual -Wcast-align -Wconversion
-Wredundant-decls -ansi -version
	-fmudflapth -fno-builtin -fno-merge-constants -o apic-tmp

gdb traceback
=============
Program received signal SIGSEGV, Segmentation fault.
0x08376c84 in ggc_set_mark (p=0x85e0840) at ../../gcc/gcc/ggc-page.c:561
561       return base[L1][L2];
(gdb) where
#0  0x08376c84 in ggc_set_mark (p=0x85e0840) at
../../gcc/gcc/ggc-page.c:561
#1  0x08203c58 in gt_ggc_m_P9tree_node4htab (x_p=0x85e0840)
    at gtype-desc.c:1296
#2  0x08200c3d in ggc_mark_roots () at ../../gcc/gcc/ggc-common.c:105
#3  0x0837761e in ggc_collect () at ../../gcc/gcc/ggc-page.c:1764
#4  0x08344957 in rest_of_compilation (decl=0x40414230)
    at ../../gcc/gcc/toplev.c:3514
#5  0x08063f33 in c_expand_body_1 (fndecl=0x40414230, nested_p=0)
    at ../../gcc/gcc/c-decl.c:6491
#6  0x080644b9 in c_expand_body (fndecl=0x1780) at
../../gcc/gcc/c-decl.c:6575
#7  0x08063a56 in finish_function (nested=0, can_defer_p=1)
    at ../../gcc/gcc/c-decl.c:6329
#8  0x0804b6d6 in yyparse () at c-parse.y:406
#9  0x0808ff78 in c_common_parse_file (set_yydebug=6016)
    at ../../gcc/gcc/c-opts.c:1644
#10 0x0834352a in compile_file () at ../../gcc/gcc/toplev.c:2257
#11 0x08349187 in do_compile () at ../../gcc/gcc/toplev.c:5662
#12 0x083491f9 in toplev_main (argc=6016, argv=0x0)
    at ../../gcc/gcc/toplev.c:5693
#13 0x080c419b in main (argc=6016, argv=0x1780) at
../../gcc/gcc/main.c:37

--
Eyal Lebedinsky (eyal@eyal.emu.id.au) <http://samba.org/eyal/>
enqueue_decl obj=`ssa_trace__' label=`ssa_trace__.210' size=16
enqueue_constant obj=`"GetAttributesMask"' label=`*.LC1792' size=18
enqueue_constant obj=`"apic.c:10580 (smaatm)"' label=`*.LC1793' size=22
enqueue_constant obj=`"apic.c:10572 (smaatm)"' label=`*.LC1794' size=22
enqueue_constant obj=`"apic.c:10582 (smaatm)"' label=`*.LC1795' size=22

;; Function smaatb (smaatb)

smaatb (UserId)
{
  struct userData * * retval.66423;
  struct userData * * T.66424;
  int T.66425;
  unsigned int __mf_index_1859.66426;
  unsigned int T.66427;
  uintptr_t T.66428;
  uintptr_t T.66429;
  uintptr_t T.66430;
  int T.66431;
  uintptr_t T.66432;
  uintptr_t T.66433;
  uintptr_t T.66434;
  int T.66435;
  int T.66436;
  long int T.66437;
  long int T.66438;
  void * __mf_base.66439;
  struct userData * retval.66440;
  int __mf_value.66441;
  uintptr_t T.66442;
  uintptr_t T.66443;
  uintptr_t T.66444;
  int T.66445;
  uintptr_t T.66446;
  uintptr_t T.66447;
  uintptr_t T.66448;
  int T.66449;
  int T.66450;
  long int T.66451;
  long int T.66452;
  void * __mf_base.66453;
  struct userData * * retval.66454;
  unsigned int __mf_index_1860.66455;
  unsigned int T.66456;
  uintptr_t T.66457;
  uintptr_t T.66458;
  uintptr_t T.66459;
  int T.66460;
  uintptr_t T.66461;
  uintptr_t T.66462;
  uintptr_t T.66463;
  int T.66464;
  int T.66465;
  long int T.66466;
  long int T.66467;
  void * __mf_base.66468;
  long int * retval.66469;
  int T.66470;
  uintptr_t T.66471;
  uintptr_t T.66472;
  uintptr_t T.66473;
  int T.66474;
  uintptr_t T.66475;
  uintptr_t T.66476;
  uintptr_t T.66477;
  int T.66478;
  int T.66479;
  long int T.66480;
  long int T.66481;
  void * __mf_base.66482;
  struct userData * * retval.66483;
  unsigned int __mf_index_1861.66484;
  unsigned int T.66485;
  uintptr_t T.66486;
  uintptr_t T.66487;
  uintptr_t T.66488;
  int T.66489;
  uintptr_t T.66490;
  uintptr_t T.66491;
  uintptr_t T.66492;
  int T.66493;
  int T.66494;
  long int T.66495;
  long int T.66496;
  void * __mf_base.66497;
  struct userData * retval.66498;
  int __mf_value.66499;
  uintptr_t T.66500;
  uintptr_t T.66501;
  uintptr_t T.66502;
  int T.66503;
  uintptr_t T.66504;
  uintptr_t T.66505;
  uintptr_t T.66506;
  int T.66507;
  int T.66508;
  long int T.66509;
  long int T.66510;
  void * __mf_base.66511;
  int iftmp.66415;
  long int T.66416;
  struct ssa_trace__ * ssa_trace__.66417;
  char * T.66418;
  struct userData * T.66419;
  int T.66420;
  int T.66421;
  uulong T.66422;
  static struct ssa_trace__ ssa_trace__ = {.file=(char *)"apic.c", .fname=(char *)"GetAttributesBits", .func=2147483632, .flags=0};
  int ssa_trace__dummy;
  long int rc;

  T.66416 = ssa_trace__.func;
  if (T.66416 != 2147483634)
    {
      ssa_trace__.66417 = &ssa_trace__;
      iftmp.66415 = skt001 (ssa_trace__.66417, 10589)
    }
  else
    {
      iftmp.66415 = 0
    };
  ssa_trace__dummy = iftmp.66415;
  while (1)
    {
      {
        long int __trc7;

        __trc7 = ms_user_verify (UserId, 1);
        if (__trc7 < 0)
          {
            while (1)
              {
                {
                  long int t_ssa_trace_return_long;

                  T.66418 = ssa_trace__.file;
                  t_ssa_trace_return_long = skerlg (T.66418, 10594, 100, 1, __trc7);
                  T.66416 = ssa_trace__.func;
                  if (T.66416 != 2147483634)
                    {
                      ssa_trace__.66417 = &ssa_trace__;
                      skt004 (ssa_trace__.66417, 10594, t_ssa_trace_return_long)
                    };
                  return t_ssa_trace_return_long;
                };
                goto <UL8620>;
              };
            <UL8620>:;
          };
        rc = __trc7
      };
      goto <UL8540>;
    };
  <UL8540>:;;
  {
    long int __mf_index_1859;
    struct userData * * const __mf_value;
    uintptr_t __mf_base;
    uintptr_t __mf_size;
    struct __mf_cache * __mf_elem;

    __mf_index_1859 = UserId;
    __mf_value = &users[__mf_index_1859];
    T.66424 = &users[0];
    T.66425 = (int)T.66424;
    __mf_base = (uintptr_t)T.66425;
    __mf_index_1859.66426 = (unsigned int)__mf_index_1859;
    T.66427 = __mf_index_1859.66426 * 4;
    __mf_size = T.66427 + 4;
    T.66428 = __mf_base >> __mf_lc_shift;
    T.66429 = T.66428 & __mf_lc_mask;
    __mf_elem = &__mf_lookup_cache[T.66429];
    T.66430 = __mf_elem->low;
    T.66431 = T.66430 > __mf_base;
    T.66432 = __mf_elem->high;
    T.66433 = __mf_size - 1;
    T.66434 = __mf_base + T.66433;
    T.66435 = T.66432 < T.66434;
    T.66436 = T.66431 | T.66435;
    T.66437 = (long int)T.66436;
    T.66438 = __builtin_expect (T.66437, 0);
    if (T.66438)
      {
        {
          __mf_base.66439 = (void *)__mf_base;
          __mf_check (__mf_base.66439, __mf_size, 0, (const char *)(char *)"apic.c:10595 (smaatb)")
        }
      };
    retval.66423 = __mf_value
  };
  T.66419 = *retval.66423;
  {
    struct userData * const __mf_value;
    uintptr_t __mf_base;
    uintptr_t __mf_size;
    struct __mf_cache * __mf_elem;

    __mf_value = T.66419;
    __mf_value.66441 = (int)__mf_value;
    __mf_base = (uintptr_t)__mf_value.66441;
    __mf_size = 4;
    T.66442 = __mf_base >> __mf_lc_shift;
    T.66443 = T.66442 & __mf_lc_mask;
    __mf_elem = &__mf_lookup_cache[T.66443];
    T.66444 = __mf_elem->low;
    T.66445 = T.66444 > __mf_base;
    T.66446 = __mf_elem->high;
    T.66447 = __mf_size - 1;
    T.66448 = __mf_base + T.66447;
    T.66449 = T.66446 < T.66448;
    T.66450 = T.66445 | T.66449;
    T.66451 = (long int)T.66450;
    T.66452 = __builtin_expect (T.66451, 0);
    if (T.66452)
      {
        {
          __mf_base.66453 = (void *)__mf_base;
          __mf_check (__mf_base.66453, __mf_size, 0, (const char *)(char *)"apic.c:10595 (smaatb)")
        }
      };
    retval.66440 = __mf_value
  };
  T.66420 = retval.66440->flags;
  T.66421 = T.66420 & 16;
  if (T.66421 != 0)
    {
      {
        long int __mf_index_1860;
        struct userData * * const __mf_value;
        uintptr_t __mf_base;
        uintptr_t __mf_size;
        struct __mf_cache * __mf_elem;

        __mf_index_1860 = UserId;
        __mf_value = &users[__mf_index_1860];
        T.66424 = &users[0];
        T.66425 = (int)T.66424;
        __mf_base = (uintptr_t)T.66425;
        __mf_index_1860.66455 = (unsigned int)__mf_index_1860;
        T.66456 = __mf_index_1860.66455 * 4;
        __mf_size = T.66456 + 4;
        T.66457 = __mf_base >> __mf_lc_shift;
        T.66458 = T.66457 & __mf_lc_mask;
        __mf_elem = &__mf_lookup_cache[T.66458];
        T.66459 = __mf_elem->low;
        T.66460 = T.66459 > __mf_base;
        T.66461 = __mf_elem->high;
        T.66462 = __mf_size - 1;
        T.66463 = __mf_base + T.66462;
        T.66464 = T.66461 < T.66463;
        T.66465 = T.66460 | T.66464;
        T.66466 = (long int)T.66465;
        T.66467 = __builtin_expect (T.66466, 0);
        if (T.66467)
          {
            {
              __mf_base.66468 = (void *)__mf_base;
              __mf_check (__mf_base.66468, __mf_size, 0, (const char *)(char *)"apic.c:10595 (smaatb)")
            }
          };
        retval.66454 = __mf_value
      };
      T.66419 = *retval.66454;
      {
        long int * const __mf_value;
        uintptr_t __mf_base;
        uintptr_t __mf_size;
        struct __mf_cache * __mf_elem;

        __mf_value = &T.66419->UserIds[0];
        T.66470 = (int)T.66419;
        __mf_base = (uintptr_t)T.66470;
        __mf_size = 42840;
        T.66471 = __mf_base >> __mf_lc_shift;
        T.66472 = T.66471 & __mf_lc_mask;
        __mf_elem = &__mf_lookup_cache[T.66472];
        T.66473 = __mf_elem->low;
        T.66474 = T.66473 > __mf_base;
        T.66475 = __mf_elem->high;
        T.66476 = __mf_size - 1;
        T.66477 = __mf_base + T.66476;
        T.66478 = T.66475 < T.66477;
        T.66479 = T.66474 | T.66478;
        T.66480 = (long int)T.66479;
        T.66481 = __builtin_expect (T.66480, 0);
        if (T.66481)
          {
            {
              __mf_base.66482 = (void *)__mf_base;
              __mf_check (__mf_base.66482, __mf_size, 0, (const char *)(char *)"apic.c:10587 (smaatb)")
            }
          };
        retval.66469 = __mf_value
      };
      UserId = *retval.66469
    };
  while (1)
    {
      {
        long int t_ssa_trace_return_long;

        {
          long int __mf_index_1861;
          struct userData * * const __mf_value;
          uintptr_t __mf_base;
          uintptr_t __mf_size;
          struct __mf_cache * __mf_elem;

          __mf_index_1861 = UserId;
          __mf_value = &users[__mf_index_1861];
          T.66424 = &users[0];
          T.66425 = (int)T.66424;
          __mf_base = (uintptr_t)T.66425;
          __mf_index_1861.66484 = (unsigned int)__mf_index_1861;
          T.66485 = __mf_index_1861.66484 * 4;
          __mf_size = T.66485 + 4;
          T.66486 = __mf_base >> __mf_lc_shift;
          T.66487 = T.66486 & __mf_lc_mask;
          __mf_elem = &__mf_lookup_cache[T.66487];
          T.66488 = __mf_elem->low;
          T.66489 = T.66488 > __mf_base;
          T.66490 = __mf_elem->high;
          T.66491 = __mf_size - 1;
          T.66492 = __mf_base + T.66491;
          T.66493 = T.66490 < T.66492;
          T.66494 = T.66489 | T.66493;
          T.66495 = (long int)T.66494;
          T.66496 = __builtin_expect (T.66495, 0);
          if (T.66496)
            {
              {
                __mf_base.66497 = (void *)__mf_base;
                __mf_check (__mf_base.66497, __mf_size, 0, (const char *)(char *)"apic.c:10595 (smaatb)")
              }
            };
          retval.66483 = __mf_value
        };
        T.66419 = *retval.66483;
        {
          struct userData * const __mf_value;
          uintptr_t __mf_base;
          uintptr_t __mf_size;
          struct __mf_cache * __mf_elem;

          __mf_value = T.66419;
          __mf_value.66499 = (int)__mf_value;
          __mf_base = (uintptr_t)__mf_value.66499;
          __mf_size = 42824;
          T.66500 = __mf_base >> __mf_lc_shift;
          T.66501 = T.66500 & __mf_lc_mask;
          __mf_elem = &__mf_lookup_cache[T.66501];
          T.66502 = __mf_elem->low;
          T.66503 = T.66502 > __mf_base;
          T.66504 = __mf_elem->high;
          T.66505 = __mf_size - 1;
          T.66506 = __mf_base + T.66505;
          T.66507 = T.66504 < T.66506;
          T.66508 = T.66503 | T.66507;
          T.66509 = (long int)T.66508;
          T.66510 = __builtin_expect (T.66509, 0);
          if (T.66510)
            {
              {
                __mf_base.66511 = (void *)__mf_base;
                __mf_check (__mf_base.66511, __mf_size, 0, (const char *)(char *)"apic.c:10597 (smaatb)")
              }
            };
          retval.66498 = __mf_value
        };
        T.66422 = retval.66498->filter.attrBits;
        t_ssa_trace_return_long = (long int)T.66422;
        T.66416 = ssa_trace__.func;
        if (T.66416 != 2147483634)
          {
            ssa_trace__.66417 = &ssa_trace__;
            skt004 (ssa_trace__.66417, 10597, t_ssa_trace_return_long)
          };
        return t_ssa_trace_return_long;
      };
      goto <UL8700>;
    };
  <UL8700>:;
}

enqueue_decl obj=`ssa_trace__' label=`ssa_trace__.211' size=16
enqueue_constant obj=`"GetAttributesBits"' label=`*.LC1796' size=18

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]