This is the mail archive of the libstdc++@gcc.gnu.org mailing list for the libstdc++ project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: __intN patch 3/5: main __int128 -> __intN conversion.


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
joseph@codesourcery.com


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]