This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC 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: Make declaration of wide_int_storage match its definition



> On Jul 5, 2014, at 11:42 AM, Gerald Pfeifer <gerald@pfeifer.com> wrote:
> 
> Farther below in wide-int.h, we define wide_int_storage as a class:
> 
>  class GTY(()) wide_int_storage
>  {
>  private:
>    HOST_WIDE_INT val[WIDE_INT_MAX_ELTS];
>    unsigned int len;
>    unsigned int precision;
>  :
> 
> The patch below, which I applied as obvious after a full bootstrap on
> i386-unknown-freebsd10.0, makes the declaration match the definition.

This patch is fine but c++ allows class and struct be used interchangeable. If there is a compilers which does not it is broken and should be report to them.  Yes that means clang is broken. 

Thanks,
Andrew

> 
> Gerald
> 
> 2014-07-05  Gerald Pfeifer  <gerald@pfeifer.com>
> 
>    * wide-int.h (wide_int_storage): Change declaration from struct 
>    to class.
> 
> Index: wide-int.h
> ===================================================================
> --- wide-int.h    (revision 212304)
> +++ wide-int.h    (working copy)
> @@ -284,7 +284,7 @@
> 
> template <typename T> struct generic_wide_int;
> template <int N> struct fixed_wide_int_storage;
> -struct wide_int_storage;
> +class wide_int_storage;
> 
> /* An N-bit integer.  Until we can use typedef templates, use this instead.  */
> #define FIXED_WIDE_INT(N) \


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