On Mon, 25 Aug 2014, DJ Delorie wrote:
> + for (i = 0; i < NUM_INT_N_ENTS; i ++)
> + if (int_n_enabled_p[i])
> + {
> + char buf[35+20+20];
> +
> + /* These are used to configure the C++ library. */
> +
> + if (!flag_iso || int_n_data[i].bitsize == POINTER_SIZE)
> + {
> + sprintf (buf, "__GLIBCXX_TYPE_INT_N_%d=__int%d", i,
> int_n_data[i].bitsize);
> + cpp_define (parse_in, buf);
> +
> + sprintf (buf, "__GLIBCXX_BITSIZE_INT_N_%d=%d", i,
> int_n_data[i].bitsize);
> + cpp_define (parse_in, buf);
> + }
> + }
I think this should at least initially be conditioned on c_dialect_cxx ().
> + case RID_INT_N_0:
> + case RID_INT_N_1:
> + case RID_INT_N_2:
> + case RID_INT_N_3:
> + specs->int_n_idx = i - RID_INT_N_0;
> + if (!in_system_header_at (input_location)
> + /* As a special exception, allow a type that's used
> + for __SIZE_TYPE__. */
> + && int_n_data[specs->int_n_idx].bitsize != POINTER_SIZE)
Given the precedent for long long as __SIZE_TYPE__, I don't think we
should have that special exception.
The non-C++/libstdc++ parts are OK with those changes.
--
Joseph S. Myers
[email protected]