+2011-07-21 Jason Merrill <jason@redhat.com>
+
+ * system.h (HAVE_DESIGNATED_UNION_INITIALIZERS): New.
+ * recog.h (struct insn_data_d): Check it instead of
+ HAVE_DESIGNATED_INITIALIZERS.
+ * genoutput.c (output_insn_data): Likewise.
+
2011-07-21 Richard Guenther <rguenther@suse.de>
PR tree-optimization/49770
switch (d->output_format)
{
case INSN_OUTPUT_FORMAT_NONE:
- printf ("#if HAVE_DESIGNATED_INITIALIZERS\n");
+ printf ("#if HAVE_DESIGNATED_UNION_INITIALIZERS\n");
printf (" { 0 },\n");
printf ("#else\n");
printf (" { 0, 0, 0 },\n");
const char *p = d->template_code;
char prev = 0;
- printf ("#if HAVE_DESIGNATED_INITIALIZERS\n");
+ printf ("#if HAVE_DESIGNATED_UNION_INITIALIZERS\n");
printf (" { .single =\n");
printf ("#else\n");
printf (" {\n");
++p;
}
printf ("\",\n");
- printf ("#if HAVE_DESIGNATED_INITIALIZERS\n");
+ printf ("#if HAVE_DESIGNATED_UNION_INITIALIZERS\n");
printf (" },\n");
printf ("#else\n");
printf (" 0, 0 },\n");
}
break;
case INSN_OUTPUT_FORMAT_MULTI:
- printf ("#if HAVE_DESIGNATED_INITIALIZERS\n");
+ printf ("#if HAVE_DESIGNATED_UNION_INITIALIZERS\n");
printf (" { .multi = output_%d },\n", d->code_number);
printf ("#else\n");
printf (" { 0, output_%d, 0 },\n", d->code_number);
printf ("#endif\n");
break;
case INSN_OUTPUT_FORMAT_FUNCTION:
- printf ("#if HAVE_DESIGNATED_INITIALIZERS\n");
+ printf ("#if HAVE_DESIGNATED_UNION_INITIALIZERS\n");
printf (" { .function = output_%d },\n", d->code_number);
printf ("#else\n");
printf (" { 0, 0, output_%d },\n", d->code_number);
&& !defined(__cplusplus))
#endif
+#if !defined(HAVE_DESIGNATED_UNION_INITIALIZERS)
+#define HAVE_DESIGNATED_UNION_INITIALIZERS \
+ (((GCC_VERSION >= 2007) || (__STDC_VERSION__ >= 199901L)) \
+ && (!defined(__cplusplus) || (GCC_VERSION >= 4007)))
+#endif
+
#if HAVE_SYS_STAT_H
# include <sys/stat.h>
#endif