Rainer Orth <r...@cebitec.uni-bielefeld.de> writes:

> * On sparc, I didn't get that far, unfortunately: as I mentioned, many
>   compilations die with SIGBUS:
>
> libtool: compile:  /var/gcc/regression/trunk/11.5-gcc/build/./gcc/gdc 
> -B/var/gcc/regression/trunk/11.5-gcc/build/./gcc/ 
> -B/vol/gcc/sparc-sun-solaris2.11/bin/ -B/vol/gcc/sparc-sun-solaris2.11/lib/ 
> -isystem /vol/gcc/sparc-sun-solaris2.11/include -isystem 
> /vol/gcc/sparc-sun-solaris2.11/sys-include -fno-checking -fPIC -O2 -g 
> -nostdinc -I /vol/gcc/src/hg/trunk/local/libphobos/libdruntime -I . -c 
> /vol/gcc/src/hg/trunk/local/libphobos/libdruntime/core/thread.d 
> -fversion=Shared -o core/.libs/thread.o
> d21: internal compiler error: Bus Error
> 0xbb5507 crash_signal
>         /vol/gcc/src/hg/trunk/local/gcc/toplev.c:325
> 0x518700 IntegerExp::toInteger()
>         /vol/gcc/src/hg/trunk/local/gcc/d/dmd/expression.c:2943
> 0x4d05c3 interpret
>         /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dinterpret.c:5984
> 0x4d1543 interpret
>         /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dinterpret.c:6017
> 0x4d1543 interpret(Statement*, InterState*)
>         /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dinterpret.c:6024
> 0x4d263b interpretFunction
>         /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dinterpret.c:906
> 0x4d263b interpretFunction
>         /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dinterpret.c:726
> 0x4d05c3 interpret
>         /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dinterpret.c:5984
> 0x4d14df interpret(Expression*, InterState*, CtfeGoal)
>         /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dinterpret.c:5994
> 0x4d05c3 interpret
>         /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dinterpret.c:5984
> 0x4d14df interpret(Expression*, InterState*, CtfeGoal)
>         /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dinterpret.c:5994
> 0x5243d7 DeclarationExp::accept(Visitor*)
>         /vol/gcc/src/hg/trunk/local/gcc/d/dmd/expression.h:661
> 0x4d05c3 interpret
>         /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dinterpret.c:5984
> 0x4d1543 interpret
>         /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dinterpret.c:6017
> 0x4d1543 interpret(Statement*, InterState*)
>         /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dinterpret.c:6024
> 0x4d263b interpretFunction
>         /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dinterpret.c:906
> 0x4d263b interpretFunction
>         /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dinterpret.c:726
> 0x4d05c3 interpret
>         /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dinterpret.c:5984
> 0x4d14df interpret(Expression*, InterState*, CtfeGoal)
>         /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dinterpret.c:5994
> 0x4d05c3 interpret
>         /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dinterpret.c:5984
>
>   Will need to dig further here.

It's exactly as I suspected:

$ d21 /vol/gcc/src/hg/trunk/local/libphobos/libdruntime/core/thread.d -mcpu=v9 
-fversion=Shared -I /vol/gcc/src/hg/trunk/local/libphobos/libdruntime -o 
thread.s

Thread 2 received signal SIGSEGV, Segmentation fault.
[Switching to Thread 1 (LWP 1)]
0x00518700 in IntegerExp::toInteger (this=<optimized out>)
    at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/expression.c:2942
2942        return value;
(gdb) where
#0  0x00518700 in IntegerExp::toInteger (this=<optimized out>)
    at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/expression.c:2942
#1  0x004d8f24 in Interpreter::visit(BinExp*) ()
    at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/declaration.h:292
#2  0x005268ec in CmpExp::accept(Visitor*) ()
#3  0x004d05c4 in interpret (pue=0xffbfbbf4, e=0x22778f0, istate=0xffbfc144, 
    goal=ctfeNeedRvalue)
    at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dinterpret.c:5984
#4  0x004d6254 in Interpreter::visit(ForStatement*) ()
    at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/declaration.h:292
#5  0x005aec68 in ForStatement::accept(Visitor*) ()
#6  0x004d475c in Interpreter::visit(CompoundStatement*) ()
    at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/declaration.h:292
#7  0x005b5708 in CompoundStatement::accept(Visitor*) ()
#8  0x004d4810 in Interpreter::visit(ScopeStatement*) ()
    at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/declaration.h:292
#9  0x005aec08 in ScopeStatement::accept(Visitor*) ()
#10 0x004d475c in Interpreter::visit(CompoundStatement*) ()
    at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/declaration.h:292
#11 0x005b5708 in CompoundStatement::accept(Visitor*) ()
#12 0x004d475c in Interpreter::visit(CompoundStatement*) ()
    at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/declaration.h:292
#13 0x005b5708 in CompoundStatement::accept(Visitor*) ()
#14 0x004d1544 in interpret (istate=<optimized out>, s=<optimized out>, 
    pue=0xffbfc07c) at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dinterpret.c:6017
#15 interpret (s=0x22ea0f8, istate=0xffbfc144)
    at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dinterpret.c:6024
#16 0x004d263c in interpretFunction (thisarg=0x22f6198, 
    arguments=<optimized out>, istate=0xffbfcb5c, fd=0x2270cc0)
    at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dinterpret.c:906
#17 interpretFunction (fd=0x2270cc0, istate=0xffbfcb5c, 
    arguments=<optimized out>, thisarg=<optimized out>)
    at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dinterpret.c:726
#18 0x004e22ac in Interpreter::visit(CallExp*) ()
    at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/declaration.h:292
#19 0x00486cb8 in CallExp::accept (this=0x22ea380, v=0xffbfc2cc)
    at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/expression.h:878
#20 0x004d05c4 in interpret (pue=0xffbfc344, e=0x22ea380, istate=0xffbfcb5c, 
    goal=ctfeNeedRvalue)
    at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dinterpret.c:5984
#21 0x004d14e0 in interpret (e=0x22ea380, istate=0xffbfcb5c, 
    goal=ctfeNeedRvalue)
    at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dinterpret.c:5994
#22 0x004e33dc in Interpreter::interpretAssignCommon(BinExp*, UnionExp (*)(Loc, 
Type*, Expression*, Expression*), int) ()
    at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/declaration.h:292
#23 0x00526d18 in ConstructExp::accept(Visitor*) ()
    at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/declaration.h:672
#24 0x004d05c4 in interpret (pue=0xffbfc5bc, e=0x22ea348, istate=0xffbfcb5c, 
    goal=ctfeNeedNothing)
    at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dinterpret.c:5984
#25 0x004d14e0 in interpret (e=0x22ea348, istate=0xffbfcb5c, 
    goal=ctfeNeedNothing)
    at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dinterpret.c:5994
#26 0x004de01c in Interpreter::visit(DeclarationExp*) ()
    at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/declaration.h:292
#27 0x005243d8 in DeclarationExp::accept (this=0x2270170, v=0xffbfc79c)
    at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/expression.h:661
#28 0x004d05c4 in interpret (pue=0xffbfca94, e=0x2270170, istate=0xffbfcb5c, 
    goal=ctfeNeedNothing)
    at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dinterpret.c:5984
#29 0x004d5ab8 in Interpreter::visit(ExpStatement*) ()
    at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/declaration.h:292
#30 0x005b56d8 in ExpStatement::accept(Visitor*) ()
#31 0x004d475c in Interpreter::visit(CompoundStatement*) ()
    at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/declaration.h:292
#32 0x005b5708 in CompoundStatement::accept(Visitor*) ()
#33 0x004d475c in Interpreter::visit(CompoundStatement*) ()
    at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/declaration.h:292
#34 0x005b5708 in CompoundStatement::accept(Visitor*) ()
#35 0x004d1544 in interpret (istate=<optimized out>, s=<optimized out>, 
    pue=0xffbfca94) at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dinterpret.c:6017
#36 interpret (s=0x22eabb0, istate=0xffbfcb5c)
    at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dinterpret.c:6024
#37 0x004d263c in interpretFunction (thisarg=0x22f6198, 
    arguments=<optimized out>, istate=0xffbfd964, fd=0x226fed8)
    at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dinterpret.c:906
#38 interpretFunction (fd=0x226fed8, istate=0xffbfd964, 
    arguments=<optimized out>, thisarg=<optimized out>)
    at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dinterpret.c:726
#39 0x004e22ac in Interpreter::visit(CallExp*) ()
    at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/declaration.h:292
#40 0x00486cb8 in CallExp::accept (this=0x22ef2b0, v=0xffbfcce4)
    at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/expression.h:878
#41 0x004d05c4 in interpret (pue=0xffbfcd5c, e=0x22ef2b0, istate=0xffbfd964, 
    goal=ctfeNeedRvalue)
    at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dinterpret.c:5984
#42 0x004d14e0 in interpret (e=0x22ef2b0, istate=0xffbfd964, 
    goal=ctfeNeedRvalue)
    at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dinterpret.c:5994
#43 0x004e33dc in Interpreter::interpretAssignCommon(BinExp*, UnionExp (*)(Loc, 
Type*, Expression*, Expression*), int) ()
    at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/declaration.h:292
#44 0x00526d18 in ConstructExp::accept(Visitor*) ()
    at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/declaration.h:672
#45 0x004d05c4 in interpret (pue=0xffbfcfd4, e=0x22ef240, istate=0xffbfd964, 
    goal=ctfeNeedNothing)
    at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dinterpret.c:5984
#46 0x004d14e0 in interpret (e=0x22ef240, istate=0xffbfd964, 
    goal=ctfeNeedNothing)
    at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dinterpret.c:5994
#47 0x004de01c in Interpreter::visit(DeclarationExp*) ()
    at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/declaration.h:292
#48 0x005243d8 in DeclarationExp::accept (this=0x22eef08, v=0xffbfd1b4)
    at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/expression.h:661
#49 0x004d05c4 in interpret (pue=0xffbfd89c, e=0x22eef08, istate=0xffbfd964, 
    goal=ctfeNeedNothing)
    at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dinterpret.c:5984
#50 0x004d5ab8 in Interpreter::visit(ExpStatement*) ()
    at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/declaration.h:292
#51 0x005b56d8 in ExpStatement::accept(Visitor*) ()
#52 0x004d475c in Interpreter::visit(CompoundStatement*) ()
    at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/declaration.h:292
#53 0x005b5708 in CompoundStatement::accept(Visitor*) ()
#54 0x004d6140 in Interpreter::visit(ForStatement*) ()
    at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/declaration.h:292
#55 0x005aec68 in ForStatement::accept(Visitor*) ()
    at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/statement.h:230
#56 0x004d475c in Interpreter::visit(CompoundStatement*) ()
    at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/declaration.h:292
#57 0x005b5708 in CompoundStatement::accept(Visitor*) ()
#58 0x004d4810 in Interpreter::visit(ScopeStatement*) ()
    at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/declaration.h:292
#59 0x005aec08 in ScopeStatement::accept (this=0x22eefa8, v=0xffbfd6dc)
    at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/statement.h:230
#60 0x004d475c in Interpreter::visit(CompoundStatement*) ()
    at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/declaration.h:292
#61 0x005b5708 in CompoundStatement::accept(Visitor*) ()
#62 0x004d475c in Interpreter::visit(CompoundStatement*) ()
    at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/declaration.h:292
#63 0x005b5708 in CompoundStatement::accept(Visitor*) ()
#64 0x004d1544 in interpret (istate=<optimized out>, s=<optimized out>, 
    pue=0xffbfd89c) at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dinterpret.c:6017
#65 interpret (s=0x22f5f18, istate=0xffbfd964)
    at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dinterpret.c:6024
#66 0x004d263c in interpretFunction (thisarg=0x0, arguments=<optimized out>, 
    istate=0xffbfde94, fd=0x226f700)
    at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dinterpret.c:906
#67 interpretFunction (fd=0x226f700, istate=0xffbfde94, 
    arguments=<optimized out>, thisarg=<optimized out>)
    at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dinterpret.c:726
#68 0x004e22ac in Interpreter::visit(CallExp*) ()
    at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/declaration.h:292
#69 0x00486cb8 in CallExp::accept (this=0x226d8e0, v=0xffbfdaec)
    at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/expression.h:878
#70 0x004d05c4 in interpret (pue=0xffbfddcc, e=0x226d8e0, istate=0xffbfde94, 
    goal=ctfeNeedRvalue)
    at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dinterpret.c:5984
#71 0x004d6768 in Interpreter::visit(ReturnStatement*) ()
    at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/declaration.h:292
#72 0x005b5abc in ReturnStatement::accept(Visitor*) ()
#73 0x004d475c in Interpreter::visit(CompoundStatement*) ()
    at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/declaration.h:292
#74 0x005b5708 in CompoundStatement::accept(Visitor*) ()
#75 0x004d1544 in interpret (istate=<optimized out>, s=<optimized out>, 
    pue=0xffbfddcc) at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dinterpret.c:6017
#76 interpret (s=0x22f6000, istate=0xffbfde94)
    at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dinterpret.c:6024
#77 0x004d263c in interpretFunction (thisarg=0x0, arguments=<optimized out>, 
    istate=0x0, fd=0x226d458)
    at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dinterpret.c:906
#78 interpretFunction (fd=0x226d458, istate=0x0, arguments=<optimized out>, 
    thisarg=<optimized out>)
    at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dinterpret.c:726
#79 0x004e22ac in Interpreter::visit(CallExp*) ()
    at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/declaration.h:292
#80 0x00486cb8 in CallExp::accept (this=0x2264840, v=0xffbfe01c)
    at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/expression.h:878
#81 0x004d05c4 in interpret (pue=0xffbfe094, e=0x2264840, istate=0x0, 
    goal=ctfeNeedRvalue)
    at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dinterpret.c:5984
#82 0x004d14e0 in interpret (e=0x2264840, istate=0x0, goal=ctfeNeedRvalue)
    at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dinterpret.c:5994
#83 0x004d19d8 in ctfeInterpret (e=0x2264840)
    at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dinterpret.c:657
#84 ctfeInterpret (e=0x2264840)
    at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dinterpret.c:641
#85 0x00490be8 in Expression::ctfeInterpret (this=<optimized out>)
    at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/expression.h:205
#86 PragmaDeclaration::semantic (this=0x22648f8, sc=0x2263200)
    at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/attrib.c:1062
#87 0x00490414 in AttribDeclaration::semantic (this=0x22649c8, sc=0x2263200)
    at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/attrib.c:186
#88 0x00502f40 in TemplateInstance::expandMembers (this=this@entry=0x1969bb0, 
    sc2=sc2@entry=0x2263200)
    at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dtemplate.c:5923
#89 0x00502f90 in TemplateInstance::tryExpandMembers (this=0x1969bb0, 
    sc2=0x2263200) at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dtemplate.c:5941
#90 0x00508d20 in TemplateInstance::semantic (fargs=0x0, sc=0x2262c48, 
    this=0x1969bb0) at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dtemplate.c:6219
#91 TemplateInstance::semantic (this=0x1969bb0, sc=0x2262c48, fargs=0x0)
    at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dtemplate.c:5962
#92 0x00587ab8 in TypeInstance::resolve (this=0x1969fb8, loc=..., 
    sc=0x2262c48, pe=0xffbfe4a0, pt=0xffbfe49c, ps=0xffbfe4a4, intypeid=false)
    at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/mtype.c:7051
#93 0x0057470c in TypeInstance::toDsymbol (this=0x1969fb8, sc=0x2262c48)
    at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/mtype.c:7101
#94 0x004c7a14 in AliasDeclaration::aliasSemantic (this=0x196a020, 
    sc=0x2262c48) at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/declaration.c:401
#95 0x00490414 in AttribDeclaration::semantic (this=0x196ae08, sc=0x193fe38)
    at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/attrib.c:186
#96 0x004e8688 in Module::semantic (this=0x193f6a0)
    at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dmodule.c:822
#97 Module::semantic (this=0x193f6a0)
    at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dmodule.c:797
#98 0x00601f9c in d_parse_file ()
    at /vol/gcc/src/hg/trunk/local/gcc/d/d-lang.cc:1115
#99 0x00bb5580 in compile_file ()
    at /vol/gcc/src/hg/trunk/local/gcc/toplev.c:455
#100 0x00bb8604 in toplev::main(int, char**) ()
#101 0x0142da50 in main (argc=8, argv=0xffbfe8cc)
    at /vol/gcc/src/hg/trunk/local/gcc/main.c:39

1: x/i $pc
=> 0x518700 <IntegerExp::toInteger()+16>:       ldtw  [ %o0 + 0x20 ], %o0
(gdb) p/x $o0
$1 = 0xffbfba04

It's indeed an unaligned access: the ldtw insn requires 8-byte
alignment, but the source isn't.  gdb misreports the signal as SIGSEGV,
but truss shows SIGBUS with an alignment error:

    Incurred fault #5, FLTACCESS  %pc = 0x00518700
      siginfo: SIGBUS BUS_ADRALN addr=0xFFBFBB24
    Received signal #10, SIGBUS [caught]
      siginfo: SIGBUS BUS_ADRALN addr=0xFFBFBB24

        Rainer

-- 
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University

Reply via email to