Created
November 1, 2016 16:51
-
-
Save tavianator/fb34581482ac07292c7918b67b29c4ca to your computer and use it in GitHub Desktop.
NDK bug 176 reproducer
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Apologies for the gcc-based test case! But clang chokes on linking the same .s file, so I suspect it's not a gcc-specific bug. | |
$ arm-linux-androideabi-g++ -std=c++11 -fpic -O3 -flto -Ipath/to/boost -c foo.cpp | |
$ arm-linux-androideabi-g++ -shared foo.o -lc++_shared -o foo.so -save-temps | |
/tmp/ndk-arm/bin/../lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin/ld: error: /tmp/ndk-arm/bin/../lib/gcc/arm-linux-androideabi/4.9.x/libgcc.a(pr-support.o): multiple definition of '__gnu_unwind_frame' | |
/tmp/ndk-arm/bin/../lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin/ld: /tmp/ndk-arm/bin/../lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/lib/libunwind.a(Unwind-EHABI.o): previous definition here | |
/tmp/ndk-arm/bin/../lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin/ld: error: /tmp/ndk-arm/bin/../lib/gcc/arm-linux-androideabi/4.9.x/libgcc.a(pr-support.o): multiple definition of '_Unwind_GetRegionStart' | |
/tmp/ndk-arm/bin/../lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin/ld: /tmp/ndk-arm/bin/../lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/lib/libunwind.a(Unwind-EHABI.o): previous definition here | |
/tmp/ndk-arm/bin/../lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin/ld: error: /tmp/ndk-arm/bin/../lib/gcc/arm-linux-androideabi/4.9.x/libgcc.a(pr-support.o): multiple definition of '_Unwind_GetLanguageSpecificData' | |
/tmp/ndk-arm/bin/../lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin/ld: /tmp/ndk-arm/bin/../lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/lib/libunwind.a(Unwind-EHABI.o): previous definition here | |
collect2: error: ld returned 1 exit status | |
$ arm-linux-androideabi-clang++ -shared foo.so.ltrans0.s -lc++_shared -o foo.so/tmp/ndk-arm/bin/../lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin/ld: error: /tmp/ndk-arm/bin/../lib/gcc/arm-linux-androideabi/4.9.x/libgcc.a(pr-support.o): multiple definition of '__gnu_unwind_frame' | |
/tmp/ndk-arm/bin/../lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin/ld: /tmp/ndk-arm/bin/../lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/lib/../lib/libunwind.a(Unwind-EHABI.o): previous definition here | |
/tmp/ndk-arm/bin/../lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin/ld: error: /tmp/ndk-arm/bin/../lib/gcc/arm-linux-androideabi/4.9.x/libgcc.a(pr-support.o): multiple definition of '_Unwind_GetRegionStart' | |
/tmp/ndk-arm/bin/../lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin/ld: /tmp/ndk-arm/bin/../lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/lib/../lib/libunwind.a(Unwind-EHABI.o): previous definition here | |
/tmp/ndk-arm/bin/../lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin/ld: error: /tmp/ndk-arm/bin/../lib/gcc/arm-linux-androideabi/4.9.x/libgcc.a(pr-support.o): multiple definition of '_Unwind_GetLanguageSpecificData' | |
/tmp/ndk-arm/bin/../lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin/ld: /tmp/ndk-arm/bin/../lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/lib/../lib/libunwind.a(Unwind-EHABI.o): previous definition here | |
clang38++: error: linker command failed with exit code 1 (use -v to see invocation) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#define NDEBUG | |
#include <boost/unordered_map.hpp> | |
boost::unordered_map<int, const char*> foo{ | |
{0, ""}, | |
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
.arch armv5te | |
.fpu softvfp | |
.eabi_attribute 20, 1 | |
.eabi_attribute 21, 1 | |
.eabi_attribute 23, 3 | |
.eabi_attribute 24, 1 | |
.eabi_attribute 25, 1 | |
.eabi_attribute 26, 2 | |
.eabi_attribute 30, 2 | |
.eabi_attribute 34, 0 | |
.file "foo.so.ltrans0.o" | |
.global __aeabi_ui2d | |
.global __aeabi_f2d | |
.global __aeabi_ddiv | |
.global __aeabi_dadd | |
.global __aeabi_dcmpge | |
.global __aeabi_d2uiz | |
.text | |
.align 2 | |
.type _ZNK5boost9unordered6detail5tableINS1_3mapINSt6__ndk19allocatorINS4_4pairIKiPKcEEEEiS9_NS_4hashIiEENS4_8equal_toIiEEEEE20min_buckets_for_sizeEj.isra.25, %function | |
_ZNK5boost9unordered6detail5tableINS1_3mapINSt6__ndk19allocatorINS4_4pairIKiPKcEEEEiS9_NS_4hashIiEENS4_8equal_toIiEEEEE20min_buckets_for_sizeEj.isra.25: | |
.fnstart | |
.LFB8: | |
@ args = 0, pretend = 0, frame = 0 | |
@ frame_needed = 0, uses_anonymous_args = 0 | |
stmfd sp!, {r4, r5, r6, lr} | |
mov r6, r0 | |
mov r0, r1 | |
bl __aeabi_ui2d(PLT) | |
mov r4, r0 | |
mov r0, r6 | |
mov r5, r1 | |
bl __aeabi_f2d(PLT) | |
mov r2, r0 | |
mov r3, r1 | |
mov r0, r4 | |
mov r1, r5 | |
bl __aeabi_ddiv(PLT) | |
bl floor(PLT) | |
mov r2, #0 | |
ldr r3, .L20 | |
bl __aeabi_dadd(PLT) | |
ldr r2, .L20+4 | |
ldr r3, .L20+8 | |
mov r4, r0 | |
mov r5, r1 | |
bl __aeabi_dcmpge(PLT) | |
cmp r0, #0 | |
mvnne r0, #0 | |
bne .L2 | |
mov r0, r4 | |
mov r1, r5 | |
bl __aeabi_d2uiz(PLT) | |
.L2: | |
ldr r4, .L20+12 | |
mov r3, #38 | |
.LPIC1: | |
ldr r4, [pc, r4] @ tls_load_dot_plus_eight | |
mov ip, r4 | |
b .L3 | |
.L4: | |
mvn r1, r1 | |
adds r3, r3, r1 | |
add ip, lr, #4 | |
beq .L7 | |
.L3: | |
add r2, r3, r3, lsr #31 | |
mov r2, r2, asr #1 | |
.L17: | |
ldr lr, [ip, r2, asl #2] | |
mov r1, r2 | |
cmp r0, lr | |
add lr, ip, r2, asl #2 | |
bhi .L4 | |
mov r3, r2 | |
cmp r3, #0 | |
add r2, r2, r2, lsr #31 | |
mov r2, r2, asr #1 | |
bne .L17 | |
.L7: | |
add r3, r4, #152 | |
cmp ip, r3 | |
addeq ip, r4, #148 | |
ldr r0, [ip] | |
ldmfd sp!, {r4, r5, r6, pc} | |
.L21: | |
.align 2 | |
.L20: | |
.word 1072693248 | |
.word -2097152 | |
.word 1106247679 | |
.word _ZN5boost9unordered6detail19prime_list_templateIjE5valueE(GOT_PREL)+(.-(.LPIC1+8)) | |
.cantunwind | |
.fnend | |
.size _ZNK5boost9unordered6detail5tableINS1_3mapINSt6__ndk19allocatorINS4_4pairIKiPKcEEEEiS9_NS_4hashIiEENS4_8equal_toIiEEEEE20min_buckets_for_sizeEj.isra.25, .-_ZNK5boost9unordered6detail5tableINS1_3mapINSt6__ndk19allocatorINS4_4pairIKiPKcEEEEiS9_NS_4hashIiEENS4_8equal_toIiEEEEE20min_buckets_for_sizeEj.isra.25 | |
.align 2 | |
.type _ZN5boost9unordered13unordered_mapIiPKcNS_4hashIiEENSt6__ndk18equal_toIiEENS6_9allocatorINS6_4pairIKiS3_EEEEED2Ev, %function | |
_ZN5boost9unordered13unordered_mapIiPKcNS_4hashIiEENSt6__ndk18equal_toIiEENS6_9allocatorINS6_4pairIKiS3_EEEEED2Ev: | |
.fnstart | |
.LFB10: | |
@ args = 0, pretend = 0, frame = 0 | |
@ frame_needed = 0, uses_anonymous_args = 0 | |
stmfd sp!, {r3, r4, r5, lr} | |
ldr r3, [r0, #20] | |
mov r4, r0 | |
cmp r3, #0 | |
beq .L23 | |
ldr r2, [r0, #8] | |
cmp r2, #0 | |
beq .L24 | |
ldr r5, [r0, #4] | |
ldr r0, [r3, r5, asl #2] | |
add r5, r3, r5, asl #2 | |
.L25: | |
ldr r3, [r0] | |
str r3, [r5] | |
bl _ZdlPv(PLT) | |
ldr r3, [r4, #8] | |
ldr r0, [r5] | |
sub r3, r3, #1 | |
cmp r0, #0 | |
str r3, [r4, #8] | |
bne .L25 | |
ldr r3, [r4, #20] | |
.L24: | |
mov r0, r3 | |
bl _ZdlPv(PLT) | |
.L23: | |
mov r0, r4 | |
ldmfd sp!, {r3, r4, r5, pc} | |
.cantunwind | |
.fnend | |
.size _ZN5boost9unordered13unordered_mapIiPKcNS_4hashIiEENSt6__ndk18equal_toIiEENS6_9allocatorINS6_4pairIKiS3_EEEEED2Ev, .-_ZN5boost9unordered13unordered_mapIiPKcNS_4hashIiEENSt6__ndk18equal_toIiEENS6_9allocatorINS6_4pairIKiS3_EEEEED2Ev | |
_ZN5boost9unordered13unordered_mapIiPKcNS_4hashIiEENSt6__ndk18equal_toIiEENS6_9allocatorINS6_4pairIKiS3_EEEEED1Ev = _ZN5boost9unordered13unordered_mapIiPKcNS_4hashIiEENSt6__ndk18equal_toIiEENS6_9allocatorINS6_4pairIKiS3_EEEEED2Ev | |
.global __aeabi_dmul | |
.align 2 | |
.type _ZN5boost9unordered6detail5tableINS1_3mapINSt6__ndk19allocatorINS4_4pairIKiPKcEEEEiS9_NS_4hashIiEENS4_8equal_toIiEEEEE14create_bucketsEj, %function | |
_ZN5boost9unordered6detail5tableINS1_3mapINSt6__ndk19allocatorINS4_4pairIKiPKcEEEEiS9_NS_4hashIiEENS4_8equal_toIiEEEEE14create_bucketsEj: | |
.fnstart | |
.LFB12: | |
@ args = 0, pretend = 0, frame = 8 | |
@ frame_needed = 0, uses_anonymous_args = 0 | |
stmfd sp!, {r4, r5, r6, r7, r8, r9, lr} | |
.save {r4, r5, r6, r7, r8, r9, lr} | |
add r4, r1, #1 | |
cmn r4, #-1073741823 | |
.pad #12 | |
sub sp, sp, #12 | |
mov r7, r1 | |
bhi .L51 | |
mov r4, r4, asl #2 | |
mov r5, r0 | |
mov r0, r4 | |
.LEHB0: | |
bl _Znwj(PLT) | |
add r2, r0, r4 | |
cmp r2, r0 | |
mov r6, r0 | |
movne r3, r0 | |
movne r1, #0 | |
beq .L42 | |
.L41: | |
cmp r3, #0 | |
strne r1, [r3] | |
add r3, r3, #4 | |
cmp r2, r3 | |
bne .L41 | |
.L42: | |
ldr r3, [r5, #20] | |
cmp r3, #0 | |
beq .L38 | |
ldr r1, [r5, #4] | |
ldr r3, [r3, r1, asl #2] | |
str r3, [r2, #-4] | |
ldr r0, [r5, #20] | |
bl _ZdlPv(PLT) | |
.L38: | |
str r7, [r5, #4] | |
str r6, [r5, #20] | |
ldr r0, [r5, #12] @ float | |
bl __aeabi_f2d(PLT) | |
mov r8, r0 | |
mov r0, r7 | |
mov r9, r1 | |
bl __aeabi_ui2d(PLT) | |
mov r2, r0 | |
mov r3, r1 | |
mov r0, r8 | |
mov r1, r9 | |
bl __aeabi_dmul(PLT) | |
bl ceil(PLT) | |
ldr r2, .L52 | |
ldr r3, .L52+4 | |
mov r6, r0 | |
mov r7, r1 | |
bl __aeabi_dcmpge(PLT) | |
cmp r0, #0 | |
mvnne r0, #0 | |
bne .L43 | |
mov r0, r6 | |
mov r1, r7 | |
bl __aeabi_d2uiz(PLT) | |
.L43: | |
str r0, [r5, #16] | |
add sp, sp, #12 | |
@ sp needed | |
ldmfd sp!, {r4, r5, r6, r7, r8, r9, pc} | |
.L51: | |
ldr r1, .L52+8 | |
mov r0, sp | |
.LPIC10: | |
add r1, pc, r1 | |
bl _ZNSt11logic_errorC2EPKc(PLT) | |
.LEHE0: | |
ldr r3, .L52+12 | |
mov r0, #8 | |
.LPIC14: | |
ldr r3, [pc, r3] @ tls_load_dot_plus_eight | |
mov r5, sp | |
add r4, r3, r0 | |
str r4, [sp] | |
bl __cxa_allocate_exception(PLT) | |
mov r1, sp | |
mov r6, r0 | |
bl _ZNSt11logic_errorC2ERKS_(PLT) | |
ldr r1, .L52+16 | |
ldr r2, .L52+20 | |
mov r0, r6 | |
.LPIC13: | |
ldr r1, [pc, r1] @ tls_load_dot_plus_eight | |
.LPIC12: | |
ldr r2, [pc, r2] @ tls_load_dot_plus_eight | |
str r4, [r6] | |
.LEHB1: | |
bl __cxa_throw(PLT) | |
.LEHE1: | |
.L45: | |
mov r4, r0 | |
mov r0, r5 | |
bl _ZNSt12length_errorD1Ev(PLT) | |
mov r0, r4 | |
.LEHB2: | |
bl _Unwind_Resume(PLT) | |
.LEHE2: | |
.L53: | |
.align 2 | |
.L52: | |
.word -2097152 | |
.word 1106247679 | |
.word .LC0-(.LPIC10+8) | |
.word _ZTVSt12length_error(GOT_PREL)+(.-(.LPIC14+8)) | |
.word _ZTISt12length_error(GOT_PREL)+(.-(.LPIC13+8)) | |
.word _ZNSt12length_errorD1Ev(GOT_PREL)+(.-(.LPIC12+8)) | |
.global __gcc_personality_v0 | |
.personality __gcc_personality_v0 | |
.handlerdata | |
.LLSDA12: | |
.byte 0xff | |
.byte 0xff | |
.byte 0x1 | |
.uleb128 .LLSDACSE12-.LLSDACSB12 | |
.LLSDACSB12: | |
.uleb128 .LEHB0-.LFB12 | |
.uleb128 .LEHE0-.LEHB0 | |
.uleb128 0 | |
.uleb128 0 | |
.uleb128 .LEHB1-.LFB12 | |
.uleb128 .LEHE1-.LEHB1 | |
.uleb128 .L45-.LFB12 | |
.uleb128 0 | |
.uleb128 .LEHB2-.LFB12 | |
.uleb128 .LEHE2-.LEHB2 | |
.uleb128 0 | |
.uleb128 0 | |
.LLSDACSE12: | |
.text | |
.fnend | |
.size _ZN5boost9unordered6detail5tableINS1_3mapINSt6__ndk19allocatorINS4_4pairIKiPKcEEEEiS9_NS_4hashIiEENS4_8equal_toIiEEEEE14create_bucketsEj, .-_ZN5boost9unordered6detail5tableINS1_3mapINSt6__ndk19allocatorINS4_4pairIKiPKcEEEEiS9_NS_4hashIiEENS4_8equal_toIiEEEEE14create_bucketsEj | |
.global __aeabi_uidivmod | |
.section .text.startup,"ax",%progbits | |
.align 2 | |
.type _GLOBAL__sub_I_foo.cpp, %function | |
_GLOBAL__sub_I_foo.cpp: | |
.fnstart | |
.LFB17: | |
@ args = 0, pretend = 0, frame = 8 | |
@ frame_needed = 0, uses_anonymous_args = 0 | |
stmfd sp!, {r4, r5, r6, r7, r8, r9, lr} | |
.save {r4, r5, r6, r7, r8, r9, lr} | |
ldr r5, .L115 | |
ldr r4, .L115+4 | |
ldr r3, .L115+8 | |
.LPIC27: | |
ldr r5, [pc, r5] @ tls_load_dot_plus_eight | |
.pad #12 | |
sub sp, sp, #12 | |
.LPIC24: | |
add r3, pc, r3 | |
.LPIC28: | |
ldr r4, [pc, r4] @ tls_load_dot_plus_eight | |
mov r2, #0 | |
str r3, [sp, #4] | |
mov r0, r5 | |
mov r3, #38 | |
strb r2, [r4] | |
str r2, [sp] | |
.L55: | |
add r2, r3, r3, lsr #31 | |
mov r2, r2, asr #1 | |
ldr ip, [r0, r2, asl #2] | |
mov r1, r2 | |
cmp ip, #10 | |
add ip, r0, r2, asl #2 | |
bhi .L110 | |
mvn r1, r1 | |
adds r3, r3, r1 | |
add r0, ip, #4 | |
bne .L55 | |
.L59: | |
add r3, r5, #152 | |
cmp r0, r3 | |
beq .L111 | |
.L61: | |
ldr r1, [r0] | |
mov r3, #0 | |
mov r2, #1065353216 | |
stmib r4, {r1, r3} | |
str r3, [r4, #16] | |
str r3, [r4, #20] | |
str r2, [r4, #12] @ float | |
mov r0, #16 | |
.LEHB3: | |
bl _Znwj(PLT) | |
.LEHE3: | |
mov r3, #0 | |
mov r2, r0 | |
mov r6, r0 | |
str r3, [r0] | |
str r3, [r0, #4] | |
add r1, r6, #15 | |
mov r0, r3 | |
strb r3, [r2, #8]! | |
mov r3, r2 | |
.L63: | |
strb r0, [r3, #1]! | |
cmp r3, r1 | |
bne .L63 | |
add r3, sp, #8 | |
ldmdb r3, {r0, r1} | |
stmia r2, {r0, r1} | |
ldr r0, [r4, #8] | |
ldr r3, [r4, #16] | |
add r1, r0, #1 | |
cmp r1, r3 | |
bls .L69 | |
ldr r3, [r4, #20] | |
cmp r3, #0 | |
beq .L112 | |
add r0, r0, r0, lsr #1 | |
cmp r0, r1 | |
movcc r0, r1 | |
bl __aeabi_ui2d(PLT) | |
mov r8, r0 | |
ldr r0, [r4, #12] @ float | |
mov r9, r1 | |
bl __aeabi_f2d(PLT) | |
mov r2, r0 | |
mov r3, r1 | |
mov r0, r8 | |
mov r1, r9 | |
bl __aeabi_ddiv(PLT) | |
bl floor(PLT) | |
mov r2, #0 | |
ldr r3, .L115+12 | |
bl __aeabi_dadd(PLT) | |
ldr r2, .L115+16 | |
ldr r3, .L115+20 | |
mov r8, r0 | |
mov r9, r1 | |
bl __aeabi_dcmpge(PLT) | |
cmp r0, #0 | |
mvnne r0, #0 | |
beq .L113 | |
.L70: | |
mov r1, #38 | |
mov r3, r5 | |
b .L72 | |
.L73: | |
add r2, r1, r1, lsr #31 | |
mov r2, r2, asr #1 | |
ldr lr, [r3, r2, asl #2] | |
add ip, r3, r2, asl #2 | |
cmp r0, lr | |
mvnhi r2, r2 | |
addhi r1, r1, r2 | |
addhi r3, ip, #4 | |
movls r1, r2 | |
.L72: | |
cmp r1, #0 | |
bne .L73 | |
add r2, r5, #152 | |
cmp r3, r2 | |
addeq r3, r5, #148 | |
ldr r1, [r3] | |
ldr r3, [r4, #4] | |
cmp r3, r1 | |
beq .L69 | |
mov r0, r4 | |
.LEHB4: | |
bl _ZN5boost9unordered6detail5tableINS1_3mapINSt6__ndk19allocatorINS4_4pairIKiPKcEEEEiS9_NS_4hashIiEENS4_8equal_toIiEEEEE14create_bucketsEj(PLT) | |
.LEHE4: | |
ldr r8, [r4, #4] | |
ldr r5, [r4, #20] | |
add r5, r5, r8, asl #2 | |
b .L75 | |
.L78: | |
ldr r0, [r7, #4] | |
mov r1, r8 | |
bl __aeabi_uidivmod(PLT) | |
ldr r3, [r4, #20] | |
ldr r2, [r3, r1, asl #2] | |
cmp r2, #0 | |
ldrne r2, [r7] | |
strne r2, [r5] | |
ldrne r2, [r3, r1, asl #2] | |
streq r5, [r3, r1, asl #2] | |
ldrne r2, [r2] | |
strne r2, [r7] | |
ldrne r3, [r3, r1, asl #2] | |
moveq r5, r7 | |
strne r7, [r3] | |
.L75: | |
ldr r7, [r5] | |
cmp r7, #0 | |
bne .L78 | |
.L69: | |
ldr r5, [r4, #20] | |
mov r2, #0 | |
ldr r3, [r5] | |
str r2, [r6, #4] | |
cmp r3, r2 | |
ldr r7, [r4, #4] | |
beq .L114 | |
ldr r3, [r3] | |
str r3, [r6] | |
ldr r3, [r5] | |
str r6, [r3] | |
.L80: | |
ldr r3, [r4, #8] | |
ldr r1, .L115+24 | |
ldr r2, .L115+28 | |
add r3, r3, #1 | |
mov r0, r4 | |
.LPIC25: | |
add r1, pc, r1 | |
.LPIC26: | |
add r2, pc, r2 | |
str r3, [r4, #8] | |
add sp, sp, #12 | |
@ sp needed | |
ldmfd sp!, {r4, r5, r6, r7, r8, r9, lr} | |
b __aeabi_atexit(PLT) | |
.L110: | |
cmp r2, #0 | |
mov r3, r2 | |
bne .L55 | |
b .L59 | |
.L111: | |
add r0, r5, #148 | |
b .L61 | |
.L113: | |
mov r0, r8 | |
mov r1, r9 | |
bl __aeabi_d2uiz(PLT) | |
b .L70 | |
.L114: | |
ldr r3, [r5, r7, asl #2] | |
add r8, r5, r7, asl #2 | |
cmp r3, #0 | |
beq .L79 | |
ldr r0, [r3, #4] | |
mov r1, r7 | |
bl __aeabi_uidivmod(PLT) | |
str r6, [r5, r1, asl #2] | |
.L79: | |
str r8, [r5] | |
ldr r3, [r5, r7, asl #2] | |
str r3, [r6] | |
str r6, [r5, r7, asl #2] | |
b .L80 | |
.L92: | |
mov r5, r0 | |
mov r0, r6 | |
bl _ZdlPv(PLT) | |
.L82: | |
ldr r3, [r4, #20] | |
cmp r3, #0 | |
beq .L83 | |
ldr r2, [r4, #8] | |
cmp r2, #0 | |
bne .L84 | |
.L86: | |
ldr r0, [r4, #20] | |
bl _ZdlPv(PLT) | |
.L83: | |
mov r0, r5 | |
.LEHB5: | |
bl _Unwind_Resume(PLT) | |
.LEHE5: | |
.L84: | |
ldr r6, [r4, #4] | |
add r6, r3, r6, asl #2 | |
ldr r0, [r6] | |
.L85: | |
ldr r3, [r0] | |
str r3, [r6] | |
bl _ZdlPv(PLT) | |
ldr r3, [r4, #8] | |
ldr r0, [r6] | |
sub r3, r3, #1 | |
cmp r0, #0 | |
str r3, [r4, #8] | |
bne .L85 | |
b .L86 | |
.L112: | |
ldr r0, [r4, #12] @ float | |
bl _ZNK5boost9unordered6detail5tableINS1_3mapINSt6__ndk19allocatorINS4_4pairIKiPKcEEEEiS9_NS_4hashIiEENS4_8equal_toIiEEEEE20min_buckets_for_sizeEj.isra.25(PLT) | |
ldr r3, [r4, #4] | |
cmp r0, r3 | |
movcs r1, r0 | |
movcc r1, r3 | |
mov r0, r4 | |
.LEHB6: | |
bl _ZN5boost9unordered6detail5tableINS1_3mapINSt6__ndk19allocatorINS4_4pairIKiPKcEEEEiS9_NS_4hashIiEENS4_8equal_toIiEEEEE14create_bucketsEj(PLT) | |
.LEHE6: | |
b .L69 | |
.L91: | |
mov r5, r0 | |
b .L82 | |
.L116: | |
.align 2 | |
.L115: | |
.word _ZN5boost9unordered6detail19prime_list_templateIjE5valueE(GOT_PREL)+(.-(.LPIC27+8)) | |
.word foo(GOT_PREL)+(.-(.LPIC28+8)) | |
.word .LC1-(.LPIC24+8) | |
.word 1072693248 | |
.word -2097152 | |
.word 1106247679 | |
.word _ZN5boost9unordered13unordered_mapIiPKcNS_4hashIiEENSt6__ndk18equal_toIiEENS6_9allocatorINS6_4pairIKiS3_EEEEED1Ev-(.LPIC25+8) | |
.word __dso_handle-(.LPIC26+8) | |
.personality __gcc_personality_v0 | |
.handlerdata | |
.LLSDA17: | |
.byte 0xff | |
.byte 0xff | |
.byte 0x1 | |
.uleb128 .LLSDACSE17-.LLSDACSB17 | |
.LLSDACSB17: | |
.uleb128 .LEHB3-.LFB17 | |
.uleb128 .LEHE3-.LEHB3 | |
.uleb128 .L91-.LFB17 | |
.uleb128 0 | |
.uleb128 .LEHB4-.LFB17 | |
.uleb128 .LEHE4-.LEHB4 | |
.uleb128 .L92-.LFB17 | |
.uleb128 0 | |
.uleb128 .LEHB5-.LFB17 | |
.uleb128 .LEHE5-.LEHB5 | |
.uleb128 0 | |
.uleb128 0 | |
.uleb128 .LEHB6-.LFB17 | |
.uleb128 .LEHE6-.LEHB6 | |
.uleb128 .L92-.LFB17 | |
.uleb128 0 | |
.LLSDACSE17: | |
.section .text.startup | |
.fnend | |
.size _GLOBAL__sub_I_foo.cpp, .-_GLOBAL__sub_I_foo.cpp | |
.section .init_array,"aw" | |
.align 2 | |
.word _GLOBAL__sub_I_foo.cpp | |
.global foo | |
.weak _ZN5boost9unordered6detail19prime_list_templateIjE5valueE | |
.section .rodata._ZN5boost9unordered6detail19prime_list_templateIjE5valueE,"aG",%progbits,_ZN5boost9unordered6detail19prime_list_templateIjE5valueE,comdat | |
.align 2 | |
.type _ZN5boost9unordered6detail19prime_list_templateIjE5valueE, %object | |
.size _ZN5boost9unordered6detail19prime_list_templateIjE5valueE, 152 | |
_ZN5boost9unordered6detail19prime_list_templateIjE5valueE: | |
.word 17 | |
.word 29 | |
.word 37 | |
.word 53 | |
.word 67 | |
.word 79 | |
.word 97 | |
.word 131 | |
.word 193 | |
.word 257 | |
.word 389 | |
.word 521 | |
.word 769 | |
.word 1031 | |
.word 1543 | |
.word 2053 | |
.word 3079 | |
.word 6151 | |
.word 12289 | |
.word 24593 | |
.word 49157 | |
.word 98317 | |
.word 196613 | |
.word 393241 | |
.word 786433 | |
.word 1572869 | |
.word 3145739 | |
.word 6291469 | |
.word 12582917 | |
.word 25165843 | |
.word 50331653 | |
.word 100663319 | |
.word 201326611 | |
.word 402653189 | |
.word 805306457 | |
.word 1610612741 | |
.word -1073741823 | |
.word -5 | |
.section .rodata.str1.4,"aMS",%progbits,1 | |
.align 2 | |
.LC0: | |
.ascii "allocator<T>::allocate(size_t n) 'n' exceeds maximu" | |
.ascii "m supported size\000" | |
.LC1: | |
.ascii "\000" | |
.bss | |
.align 2 | |
.type foo, %object | |
.size foo, 24 | |
foo: | |
.space 24 | |
.hidden __dso_handle | |
.ident "GCC: (GNU) 4.9.x 20150123 (prerelease)" | |
.section .note.GNU-stack,"",%progbits |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment