@@ -4739,7 +4739,7 @@ static tree
dummy_object (tree type)
{
tree t = build_int_cst (build_pointer_type (type), 0);
- return build1 (INDIRECT_REF, type, t);
+ return build2 (MEM_REF, type, t, t);
}
/* Gimplify __builtin_va_arg, aka VA_ARG_EXPR, which is not really a
@@ -0,0 +1,18 @@
+/* PR middle-end/45461 */
+/* { dg-do compile } */
+
+#include <stdarg.h>
+
+int
+foo (int i, ...)
+{
+ short e;
+ va_list ap;
+ va_start (ap, i);
+ e = va_arg (ap, short); /* { dg-warning "is promoted" } */
+ va_end (ap);
+ return e;
+}
+
+/* { dg-message "note: \\(so you should pass" "" {target *-*-* } 12 } */
+/* { dg-message "note: if this code" "" {target *-*-* } 12 } */