2018-03-09 Jakub Jelinek <jakub@redhat.com>
+ PR target/84772
+ * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Mark va_arg_tmp
+ temporary TREE_ADDRESSABLE before gimplification of BUILT_IN_MEMCPY.
+ * config/powerpcspe/powerpcspe.c (rs6000_gimplify_va_arg): Likewise.
+
PR c++/84767
* tree-inline.c (copy_tree_body_r): For INDIRECT_REF of a remapped
decl, use remap_type if we want to use the type.
tree copy = build_call_expr (builtin_decl_implicit (BUILT_IN_MEMCPY),
3, dest_addr, addr, size_int (rsize * 4));
+ TREE_ADDRESSABLE (tmp) = 1;
gimplify_and_add (copy, pre_p);
addr = dest_addr;
tree copy = build_call_expr (builtin_decl_implicit (BUILT_IN_MEMCPY),
3, dest_addr, addr, size_int (rsize * 4));
+ TREE_ADDRESSABLE (tmp) = 1;
gimplify_and_add (copy, pre_p);
addr = dest_addr;
2018-03-09 Jakub Jelinek <jakub@redhat.com>
+ PR target/84772
+ * gcc.dg/pr84772.c: New test.
+
PR c++/84076
* g++.dg/warn/Wformat-2.C: New test.
--- /dev/null
+/* PR target/84772 */
+/* { dg-do compile } */
+/* { dg-options "-O -Wuninitialized" } */
+
+#include <stdarg.h>
+
+void
+foo (int *x, int y, va_list ap)
+{
+ __builtin_memset (x, 0, sizeof (int));
+ for (int i = 0; i < y; i++)
+ va_arg (ap, long double); /* { dg-bogus "uninitialized" } */
+}