Re: [PATCH] Remove legacy pre-C++ 11 definitions

2023-01-10 Thread Martin Liška
On 1/9/23 16:19, Jonathan Wakely wrote:
> On Mon, 9 Jan 2023 at 15:17, Martin Liška  wrote:
>>
>> On 1/6/23 19:23, Jonathan Wakely wrote:
>>> Seems to me that GCC code should just use nullptr directly not redefine 
>>> NULL.
>>
>> Sure, but that would lead to a huge patch which would rename NULL to 
>> nullptr, right?
> 
> 
> Yeah, which can probably be done separately (or not done at all).

That would be a massive patch affecting all targets and FEs.

> I was just commenting on the comment that Andrew showed. That comment
> explain that nullptr is better than 0 as a null pointer constant,
> which is a good reason to prefer nullptr. But not a good reason to
> redefine NULL; in code with a minimum requirement of C++11 you can
> just use nullptr directly.

Ok, so does it mean my patch addresses what can be easily adjusted?

Thanks,
Martin



Re: [PATCH] Remove legacy pre-C++ 11 definitions

2023-01-09 Thread Jonathan Wakely via Gcc-patches
On Mon, 9 Jan 2023 at 15:17, Martin Liška  wrote:
>
> On 1/6/23 19:23, Jonathan Wakely wrote:
> > Seems to me that GCC code should just use nullptr directly not redefine 
> > NULL.
>
> Sure, but that would lead to a huge patch which would rename NULL to nullptr, 
> right?


Yeah, which can probably be done separately (or not done at all). I
was just commenting on the comment that Andrew showed. That comment
explain that nullptr is better than 0 as a null pointer constant,
which is a good reason to prefer nullptr. But not a good reason to
redefine NULL; in code with a minimum requirement of C++11 you can
just use nullptr directly.


Re: [PATCH] Remove legacy pre-C++ 11 definitions

2023-01-09 Thread Martin Liška

On 1/6/23 19:23, Jonathan Wakely wrote:

Seems to me that GCC code should just use nullptr directly not redefine NULL.


Sure, but that would lead to a huge patch which would rename NULL to nullptr, 
right?

Martin


Re: [PATCH] Remove legacy pre-C++ 11 definitions

2023-01-06 Thread Jonathan Wakely via Gcc-patches
On Fri, 6 Jan 2023, 17:21 Andrew Pinski,  wrote:

> On Fri, Jan 6, 2023 at 4:21 AM Martin Liška  wrote:
> >
> > As mentioned in the PRs, both are defined in C++ 11
> > which is a version we depend on.
> >
> > Ready to be installed now?
>
> There is another #define NULL below:
> /* System headers may define NULL to be an integer (e.g. 0L), which cannot
> be
>used safely in certain contexts (e.g. as sentinels).  Redefine NULL to
>nullptr in order to make it safer.  Note that this might confuse system
>headers, however, by convention they must not be included after this
> point.
> */
> #ifdef __cplusplus
> #undef NULL
> #define NULL nullptr
> #endif
>

Seems to me that GCC code should just use nullptr directly not redefine
NULL.


Thanks,
> Andrew Pinski
>
> >
> > Thanks,
> > Martin
> >
> > PR middle-end/108311
> > PR middle-end/108312
> >
> > gcc/ChangeLog:
> >
> > * system.h (va_copy): Remove as it is defined in C++ 11.
> > (NULL): Likewise.
> > ---
> >  gcc/system.h | 13 -
> >  1 file changed, 13 deletions(-)
> >
> > diff --git a/gcc/system.h b/gcc/system.h
> > index 5eaeb9d2d03..0d06b9749e5 100644
> > --- a/gcc/system.h
> > +++ b/gcc/system.h
> > @@ -31,25 +31,12 @@ along with GCC; see the file COPYING3.  If not see
> >  /* We must include stdarg.h before stdio.h.  */
> >  #include 
> >
> > -#ifndef va_copy
> > -# ifdef __va_copy
> > -#   define va_copy(d,s)  __va_copy (d, s)
> > -# else
> > -#   define va_copy(d,s)  ((d) = (s))
> > -# endif
> > -#endif
> > -
> >  #ifdef HAVE_STDDEF_H
> >  # include 
> >  #endif
> >
> >  #include 
> >
> > -/* Define a generic NULL if one hasn't already been defined.  */
> > -#ifndef NULL
> > -#define NULL 0
> > -#endif
> > -
> >  /* Use the unlocked open routines from libiberty.  */
> >
> >  /* Some of these are #define on some systems, e.g. on AIX to redirect
> > --
> > 2.39.0
> >
>


Re: [PATCH] Remove legacy pre-C++ 11 definitions

2023-01-06 Thread Andrew Pinski via Gcc-patches
On Fri, Jan 6, 2023 at 4:21 AM Martin Liška  wrote:
>
> As mentioned in the PRs, both are defined in C++ 11
> which is a version we depend on.
>
> Ready to be installed now?

There is another #define NULL below:
/* System headers may define NULL to be an integer (e.g. 0L), which cannot be
   used safely in certain contexts (e.g. as sentinels).  Redefine NULL to
   nullptr in order to make it safer.  Note that this might confuse system
   headers, however, by convention they must not be included after this point.
*/
#ifdef __cplusplus
#undef NULL
#define NULL nullptr
#endif

Thanks,
Andrew Pinski

>
> Thanks,
> Martin
>
> PR middle-end/108311
> PR middle-end/108312
>
> gcc/ChangeLog:
>
> * system.h (va_copy): Remove as it is defined in C++ 11.
> (NULL): Likewise.
> ---
>  gcc/system.h | 13 -
>  1 file changed, 13 deletions(-)
>
> diff --git a/gcc/system.h b/gcc/system.h
> index 5eaeb9d2d03..0d06b9749e5 100644
> --- a/gcc/system.h
> +++ b/gcc/system.h
> @@ -31,25 +31,12 @@ along with GCC; see the file COPYING3.  If not see
>  /* We must include stdarg.h before stdio.h.  */
>  #include 
>
> -#ifndef va_copy
> -# ifdef __va_copy
> -#   define va_copy(d,s)  __va_copy (d, s)
> -# else
> -#   define va_copy(d,s)  ((d) = (s))
> -# endif
> -#endif
> -
>  #ifdef HAVE_STDDEF_H
>  # include 
>  #endif
>
>  #include 
>
> -/* Define a generic NULL if one hasn't already been defined.  */
> -#ifndef NULL
> -#define NULL 0
> -#endif
> -
>  /* Use the unlocked open routines from libiberty.  */
>
>  /* Some of these are #define on some systems, e.g. on AIX to redirect
> --
> 2.39.0
>


[PATCH] Remove legacy pre-C++ 11 definitions

2023-01-06 Thread Martin Liška
As mentioned in the PRs, both are defined in C++ 11
which is a version we depend on.

Ready to be installed now?

Thanks,
Martin

PR middle-end/108311
PR middle-end/108312

gcc/ChangeLog:

* system.h (va_copy): Remove as it is defined in C++ 11.
(NULL): Likewise.
---
 gcc/system.h | 13 -
 1 file changed, 13 deletions(-)

diff --git a/gcc/system.h b/gcc/system.h
index 5eaeb9d2d03..0d06b9749e5 100644
--- a/gcc/system.h
+++ b/gcc/system.h
@@ -31,25 +31,12 @@ along with GCC; see the file COPYING3.  If not see
 /* We must include stdarg.h before stdio.h.  */
 #include 
 
-#ifndef va_copy
-# ifdef __va_copy
-#   define va_copy(d,s)  __va_copy (d, s)
-# else
-#   define va_copy(d,s)  ((d) = (s))
-# endif
-#endif
-
 #ifdef HAVE_STDDEF_H
 # include 
 #endif
 
 #include 
 
-/* Define a generic NULL if one hasn't already been defined.  */
-#ifndef NULL
-#define NULL 0
-#endif
-
 /* Use the unlocked open routines from libiberty.  */
 
 /* Some of these are #define on some systems, e.g. on AIX to redirect
-- 
2.39.0