This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug rtl-optimization/61702] New: thumb1_reorg crashes
- From: "manjian2006 at gmail dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Fri, 04 Jul 2014 03:37:14 +0000
- Subject: [Bug rtl-optimization/61702] New: thumb1_reorg crashes
- Auto-submitted: auto-generated
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61702
Bug ID: 61702
Summary: thumb1_reorg crashes
Product: gcc
Version: 4.9.0
Status: UNCONFIRMED
Severity: blocker
Priority: P3
Component: rtl-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: manjian2006 at gmail dot com
Compiling the attached source will result in the crash.
arm-linux-androideabi-g++ -c -fpic -ffunction-sections -funwind-tables
-fstack-protector -Wno-psabi -march=armv5te -mtune=xscale -msoft-float
-fno-exceptions -fno-rtti -mthumb -fomit-frame-pointer -fno-strict-aliasing
-finline-limit=64 -gdwarf-2 -funwind-tables -fno-pic -fPIC -fno-stack-protector
-fvisibility=hidden -gdwarf-2 -funwind-tables -fno-pic -fPIC
-fno-stack-protector -fvisibility=hidden -fvisibility-inlines-hidden
-Wa,--noexecstack -O0 -g -Wreturn-type -Wuninitialized /tmp/1.cpp
/media/linzj/normal/home/linzj/src/u3/shell-git/core/WebCore/bindings/v8/V8DOMWrapper.h:
In static member function 'static v8::Handle<v8::Object>
WebCore::V8DOMWrapper::getWrapper(WebCore::Node*)':
/media/linzj/normal/home/linzj/src/u3/shell-git/core/WebCore/bindings/v8/V8DOMWrapper.h:136:9:
internal compiler error: Segmentation fault
}
^
0x94564f crash_signal
../../building/gcc/toplev.c:337
0xb523a8 thumb1_reorg
../../building/gcc/config/arm/arm.c:16728
0xb523a8 arm_reorg
../../building/gcc/config/arm/arm.c:16981
0x8fc039 rest_of_handle_machine_reorg
../../building/gcc/reorg.c:3936
0x8fc039 execute
../../building/gcc/reorg.c:3966
Please submit a full bug report,
As far as I debug, I find out:
/* Find the last cbranchsi4_insn in basic block BB. */
if (INSN_CODE (insn) != CODE_FOR_cbranchsi4_insn)
continue;
/* Get the register with which we are comparing. */
=> pat = PATTERN (insn);
op0 = XEXP (XEXP (SET_SRC (pat), 0), 0);
pat is NULL.