[LLVMbugs] [Bug 17174] New: Crash when compiling inlined function via Android NDK Clang 3.3

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Mon Sep 9 17:50:44 PDT 2013


http://llvm.org/bugs/show_bug.cgi?id=17174

            Bug ID: 17174
           Summary: Crash when compiling inlined function via Android NDK
                    Clang 3.3
           Product: clang
           Version: 3.3
          Hardware: PC
                OS: MacOS X
            Status: NEW
          Severity: normal
          Priority: P
         Component: -New Bugs
          Assignee: unassignedclangbugs at nondot.org
          Reporter: alvion at gmail.com
                CC: llvmbugs at cs.uiuc.edu
    Classification: Unclassified

Created attachment 11174
  --> http://llvm.org/bugs/attachment.cgi?id=11174&action=edit
intermediate .cpp

Clang crashes while compiling a fairly innocuous function.  This is ndk r9,
Clang 3.3.

Output:



Assertion failed: (begin() + idx < end()), function operator[], file
/Volumes/data/ndk-toolchain/src/llvm-3.3/llvm/include/llvm/ADT/SmallVector.h,
line 144.
0  clang++           0x0000000102195305
llvm::SmallVectorTemplateBase<llvm_regmatch_t, false>::grow(unsigned long) +
629
1  clang++           0x0000000102195e6e
llvm::SmallVectorTemplateBase<llvm_regmatch_t, false>::grow(unsigned long) +
3550
2  libsystem_c.dylib 0x00007fff8fbf1cfa _sigtramp + 26
3  libsystem_c.dylib 0x00007fff5fbf7a00 _sigtramp + 3489684768
4  clang++           0x000000010219525e
llvm::SmallVectorTemplateBase<llvm_regmatch_t, false>::grow(unsigned long) +
462
5  clang++           0x00000001021952a5
llvm::SmallVectorTemplateBase<llvm_regmatch_t, false>::grow(unsigned long) +
533
6  clang++           0x000000010157a95d
std::vector<llvm::object::macho::RelocationEntry,
std::allocator<llvm::object::macho::RelocationEntry>
>::_M_insert_aux(__gnu_cxx::__normal_iterator<llvm::object::macho::RelocationEntry*,
std::vector<llvm::object::macho::RelocationEntry,
std::allocator<llvm::object::macho::RelocationEntry> > >,
llvm::object::macho::RelocationEntry const&) + 9917
7  clang++           0x0000000101582e9a
std::vector<llvm::object::macho::RelocationEntry,
std::allocator<llvm::object::macho::RelocationEntry>
>::_M_insert_aux(__gnu_cxx::__normal_iterator<llvm::object::macho::RelocationEntry*,
std::vector<llvm::object::macho::RelocationEntry,
std::allocator<llvm::object::macho::RelocationEntry> > >,
llvm::object::macho::RelocationEntry const&) + 44026
8  clang++           0x0000000101588002
std::vector<llvm::object::macho::RelocationEntry,
std::allocator<llvm::object::macho::RelocationEntry>
>::_M_insert_aux(__gnu_cxx::__normal_iterator<llvm::object::macho::RelocationEntry*,
std::vector<llvm::object::macho::RelocationEntry,
std::allocator<llvm::object::macho::RelocationEntry> > >,
llvm::object::macho::RelocationEntry const&) + 64866
9  clang++           0x0000000101fda630 std::vector<llvm::MCSectionELF const*,
std::allocator<llvm::MCSectionELF const*>
>::_M_fill_insert(__gnu_cxx::__normal_iterator<llvm::MCSectionELF const**,
std::vector<llvm::MCSectionELF const*, std::allocator<llvm::MCSectionELF
const*> > >, unsigned long, llvm::MCSectionELF const* const&) + 41328
10 clang++           0x00000001013c1c34 std::_Rb_tree<llvm::MachineInstr*,
std::pair<llvm::MachineInstr* const, unsigned int>,
std::_Select1st<std::pair<llvm::MachineInstr* const, unsigned int> >,
std::less<llvm::MachineInstr*>, std::allocator<std::pair<llvm::MachineInstr*
const, unsigned int> >
>::_M_insert_unique(std::_Rb_tree_iterator<std::pair<llvm::MachineInstr* const,
unsigned int> >, std::pair<llvm::MachineInstr* const, unsigned int> const&) +
48532
11 clang++           0x0000000101997713
std::vector<llvm::TargetLowering::AsmOperandInfo,
std::allocator<llvm::TargetLowering::AsmOperandInfo>
>::_M_insert_aux(__gnu_cxx::__normal_iterator<llvm::TargetLowering::AsmOperandInfo*,
std::vector<llvm::TargetLowering::AsmOperandInfo,
std::allocator<llvm::TargetLowering::AsmOperandInfo> > >,
llvm::TargetLowering::AsmOperandInfo const&) + 40419
12 clang++           0x00000001013b8054 std::_Rb_tree<llvm::MachineInstr*,
std::pair<llvm::MachineInstr* const, unsigned int>,
std::_Select1st<std::pair<llvm::MachineInstr* const, unsigned int> >,
std::less<llvm::MachineInstr*>, std::allocator<std::pair<llvm::MachineInstr*
const, unsigned int> >
>::_M_insert_unique(std::_Rb_tree_iterator<std::pair<llvm::MachineInstr* const,
unsigned int> >, std::pair<llvm::MachineInstr* const, unsigned int> const&) +
8628
13 clang++           0x0000000101ad4f9e void
llvm::ViewGraph<llvm::MachineFunction const*>(llvm::MachineFunction const*
const&, llvm::Twine const&, bool, llvm::Twine const&, llvm::GraphProgram::Name)
+ 926
14 clang++           0x0000000102113200
llvm::SmallVectorTemplateBase<llvm::cl::parser<llvm::PassInfo
const*>::OptionInfo, false>::grow(unsigned long) + 47824
15 clang++           0x000000010211329e
llvm::SmallVectorTemplateBase<llvm::cl::parser<llvm::PassInfo
const*>::OptionInfo, false>::grow(unsigned long) + 47982
16 clang++           0x0000000102112bdf
llvm::SmallVectorTemplateBase<llvm::cl::parser<llvm::PassInfo
const*>::OptionInfo, false>::grow(unsigned long) + 46255
17 clang++           0x0000000102112e40
llvm::SmallVectorTemplateBase<llvm::cl::parser<llvm::PassInfo
const*>::OptionInfo, false>::grow(unsigned long) + 46864
18 clang++           0x0000000102112f1d
llvm::SmallVectorTemplateBase<llvm::cl::parser<llvm::PassInfo
const*>::OptionInfo, false>::grow(unsigned long) + 47085
19 clang++           0x000000010024f85a void
llvm::ViewGraph<clang::serialization::ModuleManager>(clang::serialization::ModuleManager
const&, llvm::Twine const&, bool, llvm::Twine const&, llvm::GraphProgram::Name)
+ 7578
20 clang++           0x00000001003d7023 std::vector<clang::CXXRecordDecl
const*, std::allocator<clang::CXXRecordDecl const*>
>::_M_insert_aux(__gnu_cxx::__normal_iterator<clang::CXXRecordDecl const**,
std::vector<clang::CXXRecordDecl const*, std::allocator<clang::CXXRecordDecl
const*> > >, clang::CXXRecordDecl const* const&) + 18179
21 clang++           0x0000000100447e74
clang::operator==(clang::specific_attr_iterator<clang::MSP430InterruptAttr,
llvm::SmallVector<clang::Attr*, 2u> >,
clang::specific_attr_iterator<clang::MSP430InterruptAttr,
llvm::SmallVector<clang::Attr*, 2u> >) + 676
22 clang++           0x00000001003d4ced std::vector<clang::CXXRecordDecl
const*, std::allocator<clang::CXXRecordDecl const*>
>::_M_insert_aux(__gnu_cxx::__normal_iterator<clang::CXXRecordDecl const**,
std::vector<clang::CXXRecordDecl const*, std::allocator<clang::CXXRecordDecl
const*> > >, clang::CXXRecordDecl const* const&) + 9165
23 clang++           0x0000000100092784
llvm::SmallVectorTemplateBase<clang::CharSourceRange, false>::grow(unsigned
long) + 6980
24 clang++           0x0000000100062841 std::vector<clang::CompilerInstance*,
std::allocator<clang::CompilerInstance*>
>::_M_insert_aux(__gnu_cxx::__normal_iterator<clang::CompilerInstance**,
std::vector<clang::CompilerInstance*, std::allocator<clang::CompilerInstance*>
> >, clang::CompilerInstance* const&) + 24065
25 clang++           0x000000010000b079 std::_Rb_tree<std::string, std::string,
std::_Identity<std::string>, std::less<std::string>,
std::allocator<std::string> >::_M_erase(std::_Rb_tree_node<std::string>*) +
4761
26 clang++           0x0000000100001098
27 clang++           0x000000010000907c std::vector<std::string,
std::allocator<std::string> >::operator=(std::vector<std::string,
std::allocator<std::string> > const&) + 12828
28 clang++           0x0000000100000c34
29 clang++           0x0000000000000070
Stack dump:
0.    Program arguments:
/libraries/android-ndk-r9/toolchains/llvm-3.3/prebuilt/darwin-x86_64/bin/clang++
-cc1 -triple armv7-none-linux-androideabi -S -disable-free -main-file-name
LocklessPoolAllocator.cpp -mrelocation-model pic -pic-level 1 -relaxed-aliasing
-fmath-errno -mconstructor-aliases -munwind-tables -fuse-init-array -target-abi
aapcs-linux -target-cpu cortex-a8 -mfloat-abi soft -target-feature
+soft-float-abi -target-feature +neon -backend-option -arm-enable-ehabi
-backend-option -arm-enable-ehabi-descriptors -target-linker-version 127.2 -g
-ffunction-sections -coverage-file
/var/folders/h2/1pk8nkxj33x14hngy_4srw7w0000gn/T/LocklessPoolAllocator-SHVOjN.s
-resource-dir
/libraries/android-ndk-r9/toolchains/llvm-3.3/prebuilt/darwin-x86_64/bin/../lib/clang/3.3
-dependency-file
./obj/local/armeabi-v7a/objs/dfcore/Src/LocklessPoolAllocator.o.d -MT
./obj/local/armeabi-v7a/objs/dfcore/Src/LocklessPoolAllocator.o -MP -D NDEBUG
-D ANDROID -D _LIB -D _RELEASE -D ANDROID_NDK -D DISABLE_IMPORTGL -I
/Users/alvion/df/joev.Cave-droid/Cave-droid/Common/Code/NonDF/SDL2/include -I
/Users/alvion/df/joev.Cave-droid/Cave-droid/Common/Code -I
/Users/alvion/df/joev.Cave-droid/Cave-droid/Common/Code/NonDF -I
/libraries/android-ndk-r9/sources/cxx-stl/gnu-libstdc++/4.8/include -I
/libraries/android-ndk-r9/sources/cxx-stl/gnu-libstdc++/4.8/libs/armeabi-v7a/include
-I /libraries/android-ndk-r9/sources/cxx-stl/gnu-libstdc++/4.8/include/backward
-I /Users/alvion/df/joev.Cave-droid/Cave-droid/Common/Code/DFCore -I
/libraries/android-ndk-r9/platforms/android-9/arch-arm/usr/include
-internal-isystem /usr/local/include -internal-isystem
/libraries/android-ndk-r9/toolchains/llvm-3.3/prebuilt/darwin-x86_64/bin/../lib/clang/3.3/include
-internal-externc-isystem /include -internal-externc-isystem /usr/include -O2
-Wno-switch -Wno-unused-variable -Wformat -Werror=format-security -w
-fdeprecated-macro -fno-dwarf-directory-asm -fdebug-compilation-dir
/Users/alvion/df/joev.Cave-droid/Cave-droid/Cave/Code/Host-Ant/Android
-ferror-limit 19 -fmessage-length 138 -stack-protector 1 -mstackrealign -mllvm
-disable-global-ctor-const-promotion -fno-signed-char -fobjc-runtime=gcc
-fobjc-default-synthesize-properties -fdiagnostics-show-option
-fcolor-diagnostics -backend-option -vectorize-loops
-fno-cxx-missing-return-semantics -o
/var/folders/h2/1pk8nkxj33x14hngy_4srw7w0000gn/T/LocklessPoolAllocator-SHVOjN.s
-x c++
/Users/alvion/df/joev.Cave-droid/Cave-droid/Common/Code/DFCore/Src/LocklessPoolAllocator.cpp 
1.    <eof> parser at end of file
2.    Code generation
3.    Running pass 'Function Pass Manager' on module
'/Users/alvion/df/joev.Cave-droid/Cave-droid/Common/Code/DFCore/Src/LocklessPoolAllocator.cpp'.
4.    Running pass 'ARM Assembly / Object Emitter' on function
'@_ZN21LocklessPoolAllocator8ShutdownEv'
clang++: error: unable to execute command: Illegal instruction: 4
clang++: error: clang frontend command failed due to signal (use -v to see
invocation)
clang version 3.3 
Target: armv7-none-linux-androideabi
Thread model: posix
clang++: note: diagnostic msg: PLEASE submit a bug report to
http://source.android.com/source/report-bugs.html and include the crash
backtrace, preprocessed source, and associated run script.
clang++: note: diagnostic msg: 
********************

PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
Preprocessed source(s) and associated run script(s) are located at:
clang++: note: diagnostic msg:
/var/folders/h2/1pk8nkxj33x14hngy_4srw7w0000gn/T/LocklessPoolAllocator-RN0D9V.cpp
clang++: note: diagnostic msg:
/var/folders/h2/1pk8nkxj33x14hngy_4srw7w0000gn/T/LocklessPoolAllocator-RN0D9V.sh
clang++: note: diagnostic msg: 

********************
make: *** [obj/local/armeabi-v7a/objs/dfcore/Src/LocklessPoolAllocator.o] Error
254

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20130910/03727da8/attachment.html>


More information about the llvm-bugs mailing list