diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 878d18ea0ac..cb6507a63b5 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,13 @@ +2009-06-09 Ian Lance Taylor + + * system.h (HAVE_DESIGNATED_INITIALIZERS): Don't define if + compiling with C++. + * optabs.c (optab_table): Only use designated initializers if + HAVE_DESIGNATED_INITIALIZERS is defined. + (convert_optab_table): Likewise. + (init_optabs): Always call init_insn_codes if + HAVE_DESIGNATED_INITIALIZERS is not defined. + 2009-06-09 Ian Lance Taylor * targhooks.c (default_builtin_vectorized_function): Change fn diff --git a/gcc/optabs.c b/gcc/optabs.c index 2b9da2cdb29..257edd9e648 100644 --- a/gcc/optabs.c +++ b/gcc/optabs.c @@ -54,7 +54,7 @@ along with GCC; see the file COPYING3. If not see See expr.h for documentation of these optabs. */ -#if GCC_VERSION >= 4000 +#if GCC_VERSION >= 4000 && HAVE_DESIGNATED_INITIALIZERS __extension__ struct optab_d optab_table[OTI_MAX] = { [0 ... OTI_MAX - 1].handlers[0 ... NUM_MACHINE_MODES - 1].insn_code = CODE_FOR_nothing }; @@ -66,7 +66,7 @@ struct optab_d optab_table[OTI_MAX]; rtx libfunc_table[LTI_MAX]; /* Tables of patterns for converting one mode to another. */ -#if GCC_VERSION >= 4000 +#if GCC_VERSION >= 4000 && HAVE_DESIGNATED_INITIALIZERS __extension__ struct convert_optab_d convert_optab_table[COI_MAX] = { [0 ... COI_MAX - 1].handlers[0 ... NUM_MACHINE_MODES - 1] [0 ... NUM_MACHINE_MODES - 1].insn_code @@ -6153,7 +6153,7 @@ init_optabs (void) vcondu_gen_code[i] = CODE_FOR_nothing; } -#if GCC_VERSION >= 4000 +#if GCC_VERSION >= 4000 && HAVE_DESIGNATED_INITIALIZERS /* We statically initialize the insn_codes with CODE_FOR_nothing. */ if (reinit) init_insn_codes (); diff --git a/gcc/system.h b/gcc/system.h index 2a111ee8e84..51d9c995c3c 100644 --- a/gcc/system.h +++ b/gcc/system.h @@ -452,7 +452,8 @@ extern int vsnprintf(char *, size_t, const char *, va_list); /* 1 if we have C99 designated initializers. */ #if !defined(HAVE_DESIGNATED_INITIALIZERS) #define HAVE_DESIGNATED_INITIALIZERS \ - ((GCC_VERSION >= 2007) || (__STDC_VERSION__ >= 199901L)) + (((GCC_VERSION >= 2007) || (__STDC_VERSION__ >= 199901L)) \ + && !defined(__cplusplus)) #endif #if HAVE_SYS_STAT_H