This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: [tree-ssa mudflap] another segfault
- From: Eyal Lebedinsky <eyal at eyal dot emu dot id dot au>
- To: "Frank Ch. Eigler" <fche at redhat dot com>
- Cc: gcc list <gcc at gcc dot gnu dot org>
- Date: Sat, 14 Jun 2003 23:30:23 +1000
- Subject: Re: [tree-ssa mudflap] another segfault
- Organization: Eyal at Home
- References: <3EE91DAD.5FAC0DC1@eyal.emu.id.au> <20030613113939.GD30985@redhat.com>
"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