+2017-11-21 Claudiu Zissulescu <claziss@synopsys.com>
+
+ * cfgrtl.c (force_nonfallthru_and_redirect): Don't split a call
+ and its corresponding call arg location note.
+
2017-11-21 Claudiu Zissulescu <claziss@synopsys.com>
Andrew Burgess <andrew.burgess@embecosm.com>
else
new_head = BB_END (e->src);
new_head = NEXT_INSN (new_head);
+ /* Make sure we don't split a call and its corresponding
+ CALL_ARG_LOCATION note. */
+ if (new_head && NOTE_P (new_head)
+ && NOTE_KIND (new_head) == NOTE_INSN_CALL_ARG_LOCATION)
+ new_head = NEXT_INSN (new_head);
jump_block = create_basic_block (new_head, NULL, e->src);
jump_block->count = count;
+2017-11-21 Claudiu Zissulescu <claziss@synopsys.com>
+
+ * gcc.target/arc/loop-5.cpp: New test.
+
2017-11-21 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/83047
--- /dev/null
+/* { dg-do compile } */
+/* { dg-options "-O2 -g" } */
+
+/* Check if gcc splits a call from its CALL_ARG_LOCATION note. If so,
+ we get an ICE in dwarf2out_var_location. */
+
+typedef void Trans_NS_std_new_handler();
+void *operator new(unsigned)
+{
+ void *p;
+ while (__builtin_expect(p == 0, false))
+ {
+ Trans_NS_std_new_handler handler;
+ try {
+ handler();
+ } catch (int) {
+ }
+ }
+ return (void*) 0xdead;
+}