https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86214

Christophe Lyon <clyon at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |clyon at gcc dot gnu.org

--- Comment #20 from Christophe Lyon <clyon at gcc dot gnu.org> ---
(In reply to Jakub Jelinek from comment #17)
> Author: jakub
> Date: Fri Jan 18 10:07:27 2019
> New Revision: 268067
> 
> URL: https://gcc.gnu.org/viewcvs?rev=268067&root=gcc&view=rev
> Log:
>       PR tree-optimization/86214
>       * tree-inline.h (struct copy_body_data): Add
>       add_clobbers_to_eh_landing_pads member.
>       * tree-inline.c (add_clobbers_to_eh_landing_pad): New function.
>       (copy_edges_for_bb): Call it if EH edge destination is <
>       id->add_clobbers_to_eh_landing_pads.  Fix a comment typo.
>       (expand_call_inline): Set id->add_clobbers_to_eh_landing_pads
>       if flag_stack_reuse != SR_NONE and clear it afterwards.
> 
>       * g++.dg/opt/pr86214-1.C: New test.
>       * g++.dg/opt/pr86214-2.C: New test.
> 
> Added:
>     trunk/gcc/testsuite/g++.dg/opt/pr86214-1.C
>     trunk/gcc/testsuite/g++.dg/opt/pr86214-2.C
> Modified:
>     trunk/gcc/ChangeLog
>     trunk/gcc/testsuite/ChangeLog
>     trunk/gcc/tree-inline.c
>     trunk/gcc/tree-inline.h

Hi Jakub,

Since you committed this patch, I've noticed regressions on some arm targets:
FAIL: 23_containers/list/requirements/exception/basic.cc execution test
libstdc++.log has this:
spawn [open ...]
N10__gnu_test12functor_base19iterator_operationsINSt7__cxx114listIN9__gnu_cxx17throw_value_limitENS4_21throw_allocator_limitIS5_EEEEEE
end count 2
N10__gnu_test12functor_base25const_iterator_operationsINSt7__cxx114listIN9__gnu_cxx17throw_value_limitENS4_21throw_allocator_limitIS5_EEEEEE
end count 3
N10__gnu_test12functor_base11erase_pointINSt7__cxx114listIN9__gnu_cxx17throw_value_limitENS4_21throw_allocator_limitIS5_EEEELb1ELb0EEE
end count 4
N10__gnu_test12functor_base11erase_rangeINSt7__cxx114listIN9__gnu_cxx17throw_value_limitENS4_21throw_allocator_limitIS5_EEEELb1ELb0EEE
end count 5
N10__gnu_test12functor_base12insert_pointINSt7__cxx114listIN9__gnu_cxx17throw_value_limitENS4_21throw_allocator_limitIS5_EEEELb1ELb0EEE
end count 6
N10__gnu_test12functor_base7emplaceINSt7__cxx114listIN9__gnu_cxx17throw_value_limitENS4_21throw_allocator_limitIS5_EEEELb0EEE
end count 7
N10__gnu_test12functor_base13emplace_pointINSt7__cxx114listIN9__gnu_cxx17throw_value_limitENS4_21throw_allocator_limitIS5_EEEELb1ELb0ELb0EEE
end count 8
N10__gnu_test12functor_base13emplace_frontINSt7__cxx114listIN9__gnu_cxx17throw_value_limitENS4_21throw_allocator_limitIS5_EEEELb1EEE
end count 9
N10__gnu_test12functor_base12emplace_backINSt7__cxx114listIN9__gnu_cxx17throw_value_limitENS4_21throw_allocator_limitIS5_EEEELb1EEE
end count 10
N10__gnu_test12functor_base9pop_frontINSt7__cxx114listIN9__gnu_cxx17throw_value_limitENS4_21throw_allocator_limitIS5_EEEELb1EEE
end count 11
N10__gnu_test12functor_base8pop_backINSt7__cxx114listIN9__gnu_cxx17throw_value_limitENS4_21throw_allocator_limitIS5_EEEELb1EEE
end count 12
N10__gnu_test12functor_base10push_frontINSt7__cxx114listIN9__gnu_cxx17throw_value_limitENS4_21throw_allocator_limitIS5_EEEELb1EEE
end count 13
N10__gnu_test12functor_base9push_backINSt7__cxx114listIN9__gnu_cxx17throw_value_limitENS4_21throw_allocator_limitIS5_EEEELb1EEE
end count 14
N10__gnu_test12functor_base6rehashINSt7__cxx114listIN9__gnu_cxx17throw_value_limitENS4_21throw_allocator_limitIS5_EEEELb0EEE
end count 15
N10__gnu_test12functor_base4swapINSt7__cxx114listIN9__gnu_cxx17throw_value_limitENS4_21throw_allocator_limitIS5_EEEEEE
end count 16
qemu: uncaught target signal 11 (Segmentation fault) - core dumped

The qemu trace does not seem very helpful (and is probably incomplete):
IN:
_ZN10__gnu_test12basic_safetyINSt7__cxx114listIN9__gnu_cxx17throw_value_limitENS3_21throw_allocator_limitIS4_EEEEE3runEv
0x0001c724:  e5943008  ldr      r3, [r4, #8]
0x0001c728:  e59d2010  ldr      r2, [sp, #0x10]
0x0001c72c:  e59d101c  ldr      r1, [sp, #0x1c]
0x0001c730:  e3530000  cmp      r3, #0
0x0001c734:  e5987000  ldr      r7, [r8]
0x0001c738:  e5812000  str      r2, [r1]
0x0001c73c:  e5896000  str      r6, [sb]
0x0001c740:  e5882000  str      r2, [r8]
0x0001c744:  0a000510  beq      #0x1db8c

----------------
IN: 
0x40adc6bc:  e0849009  add      sb, r4, sb
0x40adc6c0:  e59f29c8  ldr      r2, [pc, #0x9c8]
0x40adc6c4:  e5993004  ldr      r3, [sb, #4]
0x40adc6c8:  e08f2002  add      r2, pc, r2
0x40adc6cc:  e3833001  orr      r3, r3, #1
0x40adc6d0:  e1550002  cmp      r5, r2
0x40adc6d4:  e59da018  ldr      sl, [sp, #0x18]
0x40adc6d8:  e5893004  str      r3, [sb, #4]
0x40adc6dc:  0a000002  beq      #0x40adc6ec

----------------
IN: 
0x40adc6ec:  e59f39a0  ldr      r3, [pc, #0x9a0]
0x40adc6f0:  e2846008  add      r6, r4, #8
0x40adc6f4:  e08f3003  add      r3, pc, r3
0x40adc6f8:  e593102c  ldr      r1, [r3, #0x2c]
0x40adc6fc:  e3510000  cmp      r1, #0
0x40adc700:  1affff13  bne      #0x40adc354

----------------
IN: 
0x40adc704:  e1a00006  mov      r0, r6
0x40adc708:  e28dd044  add      sp, sp, #0x44
0x40adc70c:  e8bd8ff0  pop      {r4, r5, r6, r7, r8, sb, sl, fp, pc}

----------------
IN: 
0x40adc6ac:  e085240c  add      r2, r5, ip, lsl #8
0x40adc6b0:  e2822028  add      r2, r2, #0x28
0x40adc6b4:  e3a03001  mov      r3, #1
0x40adc6b8:  eaffffce  b        #0x40adc5f8


I've noticed this on:
arm-none-linux-gnueabihf
--with-mode arm
--with-cpu cortex-a9
--with-fpu vfp
RUNTESTFLAGS: -march=armv5t

arm-none-linux-gnueabihf
--with-mode arm
--with-cpu arm10tdmi
--with-fpu vfp

arm-none-linux-gnueabihf
--with-mode arm
--with-cpu cortex-a5
--with-fpu vfpv3-d16-fp16

armeb-none-linux-gnueabihf
--with-mode arm
--with-cpu cortex-a9
--with-fpu vfpv3-d16-fp16

Other arm-none-linux-gnueabihf configs I test still run fine.

Reply via email to