diff mbox

[7/7] Plug ipa-prop escape analysis into gimple_call_arg_flags

Message ID 87k396qs7u.fsf@kepler.schwinge.homeip.net
State New
Headers show

Commit Message

Thomas Schwinge May 28, 2014, 7:26 a.m. UTC
Hi!

On Mon, 26 May 2014 02:16:35 -0700, Andrew Pinski <pinskia@gmail.com> wrote:
> On Mon, May 26, 2014 at 1:59 AM, Dominique Dhumieres <dominiq@lps.ens.fr> wrote:
> > r210901 breaks bootstrap on targets not supporting strnlen, e.g., darwin10.
> >
> > ../../_clean/gcc/lto-cgraph.c:976:68: error: 'strnlen' was not declared in this scope

I'm seeing the same on MinGW, which also doesn't have strnlen (which is a
GNU extension).

> strnlen should be declared in include/libiberty.h if there is no
> declaration as libiberty support is already there.  That should be a
> simple fix.

Like this?

--- gcc/config.in
+++ gcc/config.in
[Regenerate.]
--- gcc/configure
+++ gcc/configure
[Regenerate.]


Grüße,
 Thomas

Comments

Jan Hubicka May 28, 2014, 9:55 p.m. UTC | #1
> Hi!
> 
> On Mon, 26 May 2014 02:16:35 -0700, Andrew Pinski <pinskia@gmail.com> wrote:
> > On Mon, May 26, 2014 at 1:59 AM, Dominique Dhumieres <dominiq@lps.ens.fr> wrote:
> > > r210901 breaks bootstrap on targets not supporting strnlen, e.g., darwin10.
> > >
> > > ../../_clean/gcc/lto-cgraph.c:976:68: error: 'strnlen' was not declared in this scope
> 
> I'm seeing the same on MinGW, which also doesn't have strnlen (which is a
> GNU extension).
> 
> > strnlen should be declared in include/libiberty.h if there is no
> > declaration as libiberty support is already there.  That should be a
> > simple fix.
> 
> Like this?

This looks good to me (thoguh strnlen is posix).  I can not approve the patch
but I would preffer it over just hand implementing strnlen there (that is easy,
too)

Honza
> 
> --- gcc/config.in
> +++ gcc/config.in
> [Regenerate.]
> --- gcc/configure
> +++ gcc/configure
> [Regenerate.]
> --- gcc/configure.ac
> +++ gcc/configure.ac
> @@ -1136,7 +1136,7 @@ CFLAGS="$CFLAGS -I${srcdir} -I${srcdir}/../include $GMPINC"
>  saved_CXXFLAGS="$CXXFLAGS"
>  CXXFLAGS="$CXXFLAGS -I${srcdir} -I${srcdir}/../include $GMPINC"
>  gcc_AC_CHECK_DECLS(getenv atol asprintf sbrk abort atof getcwd getwd \
> -	strsignal strstr stpcpy strverscmp \
> +	stpcpy strnlen strsignal strstr strverscmp \
>  	errno snprintf vsnprintf vasprintf malloc realloc calloc \
>  	free basename getopt clock getpagesize ffs gcc_UNLOCKED_FUNCS, , ,[
>  #include "ansidecl.h"
> diff --git include/libiberty.h include/libiberty.h
> index 7fd0703..56b8b43 100644
> --- include/libiberty.h
> +++ include/libiberty.h
> @@ -636,6 +636,10 @@ extern int snprintf (char *, size_t, const char *, ...) ATTRIBUTE_PRINTF_3;
>  extern int vsnprintf (char *, size_t, const char *, va_list) ATTRIBUTE_PRINTF(3,0);
>  #endif
>  
> +#if defined (HAVE_DECL_STRNLEN) && !HAVE_DECL_STRNLEN
> +extern size_t strnlen (const char *, size_t);
> +#endif
> +
>  #if defined(HAVE_DECL_STRVERSCMP) && !HAVE_DECL_STRVERSCMP
>  /* Compare version strings.  */
>  extern int strverscmp (const char *, const char *);
> 
> 
> Grüße,
>  Thomas
Thomas Schwinge June 3, 2014, 9:55 a.m. UTC | #2
Hi!

Ping -- OK to commit to trunk?

On Wed, 28 May 2014 23:55:31 +0200, Jan Hubicka <hubicka@ucw.cz> wrote:
> > On Mon, 26 May 2014 02:16:35 -0700, Andrew Pinski <pinskia@gmail.com> wrote:
> > > On Mon, May 26, 2014 at 1:59 AM, Dominique Dhumieres <dominiq@lps.ens.fr> wrote:
> > > > r210901 breaks bootstrap on targets not supporting strnlen, e.g., darwin10.
> > > >
> > > > ../../_clean/gcc/lto-cgraph.c:976:68: error: 'strnlen' was not declared in this scope
> > 
> > I'm seeing the same on MinGW, which also doesn't have strnlen (which is a
> > GNU extension).
> > 
> > > strnlen should be declared in include/libiberty.h if there is no
> > > declaration as libiberty support is already there.  That should be a
> > > simple fix.
> > 
> > Like this?
> 
> This looks good to me (thoguh strnlen is posix).  I can not approve the patch
> but I would preffer it over just hand implementing strnlen there (that is easy,
> too)

Patch is also considered good by testers in
<https://gcc.gnu.org/PR61334>.

> > --- gcc/config.in
> > +++ gcc/config.in
> > [Regenerate.]
> > --- gcc/configure
> > +++ gcc/configure
> > [Regenerate.]
> > --- gcc/configure.ac
> > +++ gcc/configure.ac
> > @@ -1136,7 +1136,7 @@ CFLAGS="$CFLAGS -I${srcdir} -I${srcdir}/../include $GMPINC"
> >  saved_CXXFLAGS="$CXXFLAGS"
> >  CXXFLAGS="$CXXFLAGS -I${srcdir} -I${srcdir}/../include $GMPINC"
> >  gcc_AC_CHECK_DECLS(getenv atol asprintf sbrk abort atof getcwd getwd \
> > -	strsignal strstr stpcpy strverscmp \
> > +	stpcpy strnlen strsignal strstr strverscmp \
> >  	errno snprintf vsnprintf vasprintf malloc realloc calloc \
> >  	free basename getopt clock getpagesize ffs gcc_UNLOCKED_FUNCS, , ,[
> >  #include "ansidecl.h"
> > diff --git include/libiberty.h include/libiberty.h
> > index 7fd0703..56b8b43 100644
> > --- include/libiberty.h
> > +++ include/libiberty.h
> > @@ -636,6 +636,10 @@ extern int snprintf (char *, size_t, const char *, ...) ATTRIBUTE_PRINTF_3;
> >  extern int vsnprintf (char *, size_t, const char *, va_list) ATTRIBUTE_PRINTF(3,0);
> >  #endif
> >  
> > +#if defined (HAVE_DECL_STRNLEN) && !HAVE_DECL_STRNLEN
> > +extern size_t strnlen (const char *, size_t);
> > +#endif
> > +
> >  #if defined(HAVE_DECL_STRVERSCMP) && !HAVE_DECL_STRVERSCMP
> >  /* Compare version strings.  */
> >  extern int strverscmp (const char *, const char *);


Grüße,
 Thomas
Thomas Schwinge June 10, 2014, 6:47 a.m. UTC | #3
Hi!

On Tue, 3 Jun 2014 11:55:44 +0200, I wrote:
> Ping -- OK to commit to trunk?

Even though several of those who I'd consider regular GCC developers do
agree with this patch (see also <https://gcc.gnu.org/PR61334>), that is
not enough "consensus" to consider this patch approved, right?  Wouldn't
it be a good idea for GCC to move to a more "liberal" policy in this
regard?  (That seems to work nicely for glibc.)


Ping.


> On Wed, 28 May 2014 23:55:31 +0200, Jan Hubicka <hubicka@ucw.cz> wrote:
> > > On Mon, 26 May 2014 02:16:35 -0700, Andrew Pinski <pinskia@gmail.com> wrote:
> > > > On Mon, May 26, 2014 at 1:59 AM, Dominique Dhumieres <dominiq@lps.ens.fr> wrote:
> > > > > r210901 breaks bootstrap on targets not supporting strnlen, e.g., darwin10.
> > > > >
> > > > > ../../_clean/gcc/lto-cgraph.c:976:68: error: 'strnlen' was not declared in this scope
> > > 
> > > I'm seeing the same on MinGW, which also doesn't have strnlen (which is a
> > > GNU extension).
> > > 
> > > > strnlen should be declared in include/libiberty.h if there is no
> > > > declaration as libiberty support is already there.  That should be a
> > > > simple fix.
> > > 
> > > Like this?
> > 
> > This looks good to me (thoguh strnlen is posix).  I can not approve the patch
> > but I would preffer it over just hand implementing strnlen there (that is easy,
> > too)
> 
> Patch is also considered good by testers in
> <https://gcc.gnu.org/PR61334>.
> 
> > > --- gcc/config.in
> > > +++ gcc/config.in
> > > [Regenerate.]
> > > --- gcc/configure
> > > +++ gcc/configure
> > > [Regenerate.]
> > > --- gcc/configure.ac
> > > +++ gcc/configure.ac
> > > @@ -1136,7 +1136,7 @@ CFLAGS="$CFLAGS -I${srcdir} -I${srcdir}/../include $GMPINC"
> > >  saved_CXXFLAGS="$CXXFLAGS"
> > >  CXXFLAGS="$CXXFLAGS -I${srcdir} -I${srcdir}/../include $GMPINC"
> > >  gcc_AC_CHECK_DECLS(getenv atol asprintf sbrk abort atof getcwd getwd \
> > > -	strsignal strstr stpcpy strverscmp \
> > > +	stpcpy strnlen strsignal strstr strverscmp \
> > >  	errno snprintf vsnprintf vasprintf malloc realloc calloc \
> > >  	free basename getopt clock getpagesize ffs gcc_UNLOCKED_FUNCS, , ,[
> > >  #include "ansidecl.h"
> > > diff --git include/libiberty.h include/libiberty.h
> > > index 7fd0703..56b8b43 100644
> > > --- include/libiberty.h
> > > +++ include/libiberty.h
> > > @@ -636,6 +636,10 @@ extern int snprintf (char *, size_t, const char *, ...) ATTRIBUTE_PRINTF_3;
> > >  extern int vsnprintf (char *, size_t, const char *, va_list) ATTRIBUTE_PRINTF(3,0);
> > >  #endif
> > >  
> > > +#if defined (HAVE_DECL_STRNLEN) && !HAVE_DECL_STRNLEN
> > > +extern size_t strnlen (const char *, size_t);
> > > +#endif
> > > +
> > >  #if defined(HAVE_DECL_STRVERSCMP) && !HAVE_DECL_STRVERSCMP
> > >  /* Compare version strings.  */
> > >  extern int strverscmp (const char *, const char *);
> 
> 
> Grüße,
>  Thomas
Andrew Pinski June 10, 2014, 6:54 a.m. UTC | #4
On Mon, Jun 9, 2014 at 11:47 PM, Thomas Schwinge
<thomas@codesourcery.com> wrote:
> Hi!
>
> On Tue, 3 Jun 2014 11:55:44 +0200, I wrote:
>> Ping -- OK to commit to trunk?
>
> Even though several of those who I'd consider regular GCC developers do
> agree with this patch (see also <https://gcc.gnu.org/PR61334>), that is
> not enough "consensus" to consider this patch approved, right?  Wouldn't
> it be a good idea for GCC to move to a more "liberal" policy in this
> regard?  (That seems to work nicely for glibc.)

Really I think this is an obvious patch and would be the exact same
patch I would have came up with.

Thanks,
Andrew Pinski

>
>
> Ping.
>
>
>> On Wed, 28 May 2014 23:55:31 +0200, Jan Hubicka <hubicka@ucw.cz> wrote:
>> > > On Mon, 26 May 2014 02:16:35 -0700, Andrew Pinski <pinskia@gmail.com> wrote:
>> > > > On Mon, May 26, 2014 at 1:59 AM, Dominique Dhumieres <dominiq@lps.ens.fr> wrote:
>> > > > > r210901 breaks bootstrap on targets not supporting strnlen, e.g., darwin10.
>> > > > >
>> > > > > ../../_clean/gcc/lto-cgraph.c:976:68: error: 'strnlen' was not declared in this scope
>> > >
>> > > I'm seeing the same on MinGW, which also doesn't have strnlen (which is a
>> > > GNU extension).
>> > >
>> > > > strnlen should be declared in include/libiberty.h if there is no
>> > > > declaration as libiberty support is already there.  That should be a
>> > > > simple fix.
>> > >
>> > > Like this?
>> >
>> > This looks good to me (thoguh strnlen is posix).  I can not approve the patch
>> > but I would preffer it over just hand implementing strnlen there (that is easy,
>> > too)
>>
>> Patch is also considered good by testers in
>> <https://gcc.gnu.org/PR61334>.
>>
>> > > --- gcc/config.in
>> > > +++ gcc/config.in
>> > > [Regenerate.]
>> > > --- gcc/configure
>> > > +++ gcc/configure
>> > > [Regenerate.]
>> > > --- gcc/configure.ac
>> > > +++ gcc/configure.ac
>> > > @@ -1136,7 +1136,7 @@ CFLAGS="$CFLAGS -I${srcdir} -I${srcdir}/../include $GMPINC"
>> > >  saved_CXXFLAGS="$CXXFLAGS"
>> > >  CXXFLAGS="$CXXFLAGS -I${srcdir} -I${srcdir}/../include $GMPINC"
>> > >  gcc_AC_CHECK_DECLS(getenv atol asprintf sbrk abort atof getcwd getwd \
>> > > - strsignal strstr stpcpy strverscmp \
>> > > + stpcpy strnlen strsignal strstr strverscmp \
>> > >   errno snprintf vsnprintf vasprintf malloc realloc calloc \
>> > >   free basename getopt clock getpagesize ffs gcc_UNLOCKED_FUNCS, , ,[
>> > >  #include "ansidecl.h"
>> > > diff --git include/libiberty.h include/libiberty.h
>> > > index 7fd0703..56b8b43 100644
>> > > --- include/libiberty.h
>> > > +++ include/libiberty.h
>> > > @@ -636,6 +636,10 @@ extern int snprintf (char *, size_t, const char *, ...) ATTRIBUTE_PRINTF_3;
>> > >  extern int vsnprintf (char *, size_t, const char *, va_list) ATTRIBUTE_PRINTF(3,0);
>> > >  #endif
>> > >
>> > > +#if defined (HAVE_DECL_STRNLEN) && !HAVE_DECL_STRNLEN
>> > > +extern size_t strnlen (const char *, size_t);
>> > > +#endif
>> > > +
>> > >  #if defined(HAVE_DECL_STRVERSCMP) && !HAVE_DECL_STRVERSCMP
>> > >  /* Compare version strings.  */
>> > >  extern int strverscmp (const char *, const char *);
>>
>>
>> Grüße,
>>  Thomas
Richard Biener June 10, 2014, 9:07 a.m. UTC | #5
On Tue, Jun 10, 2014 at 8:47 AM, Thomas Schwinge
<thomas@codesourcery.com> wrote:
> Hi!
>
> On Tue, 3 Jun 2014 11:55:44 +0200, I wrote:
>> Ping -- OK to commit to trunk?
>
> Even though several of those who I'd consider regular GCC developers do
> agree with this patch (see also <https://gcc.gnu.org/PR61334>), that is
> not enough "consensus" to consider this patch approved, right?  Wouldn't
> it be a good idea for GCC to move to a more "liberal" policy in this
> regard?  (That seems to work nicely for glibc.)

Ok.

Thanks,
Richard.

>
> Ping.
>
>
>> On Wed, 28 May 2014 23:55:31 +0200, Jan Hubicka <hubicka@ucw.cz> wrote:
>> > > On Mon, 26 May 2014 02:16:35 -0700, Andrew Pinski <pinskia@gmail.com> wrote:
>> > > > On Mon, May 26, 2014 at 1:59 AM, Dominique Dhumieres <dominiq@lps.ens.fr> wrote:
>> > > > > r210901 breaks bootstrap on targets not supporting strnlen, e.g., darwin10.
>> > > > >
>> > > > > ../../_clean/gcc/lto-cgraph.c:976:68: error: 'strnlen' was not declared in this scope
>> > >
>> > > I'm seeing the same on MinGW, which also doesn't have strnlen (which is a
>> > > GNU extension).
>> > >
>> > > > strnlen should be declared in include/libiberty.h if there is no
>> > > > declaration as libiberty support is already there.  That should be a
>> > > > simple fix.
>> > >
>> > > Like this?
>> >
>> > This looks good to me (thoguh strnlen is posix).  I can not approve the patch
>> > but I would preffer it over just hand implementing strnlen there (that is easy,
>> > too)
>>
>> Patch is also considered good by testers in
>> <https://gcc.gnu.org/PR61334>.
>>
>> > > --- gcc/config.in
>> > > +++ gcc/config.in
>> > > [Regenerate.]
>> > > --- gcc/configure
>> > > +++ gcc/configure
>> > > [Regenerate.]
>> > > --- gcc/configure.ac
>> > > +++ gcc/configure.ac
>> > > @@ -1136,7 +1136,7 @@ CFLAGS="$CFLAGS -I${srcdir} -I${srcdir}/../include $GMPINC"
>> > >  saved_CXXFLAGS="$CXXFLAGS"
>> > >  CXXFLAGS="$CXXFLAGS -I${srcdir} -I${srcdir}/../include $GMPINC"
>> > >  gcc_AC_CHECK_DECLS(getenv atol asprintf sbrk abort atof getcwd getwd \
>> > > - strsignal strstr stpcpy strverscmp \
>> > > + stpcpy strnlen strsignal strstr strverscmp \
>> > >   errno snprintf vsnprintf vasprintf malloc realloc calloc \
>> > >   free basename getopt clock getpagesize ffs gcc_UNLOCKED_FUNCS, , ,[
>> > >  #include "ansidecl.h"
>> > > diff --git include/libiberty.h include/libiberty.h
>> > > index 7fd0703..56b8b43 100644
>> > > --- include/libiberty.h
>> > > +++ include/libiberty.h
>> > > @@ -636,6 +636,10 @@ extern int snprintf (char *, size_t, const char *, ...) ATTRIBUTE_PRINTF_3;
>> > >  extern int vsnprintf (char *, size_t, const char *, va_list) ATTRIBUTE_PRINTF(3,0);
>> > >  #endif
>> > >
>> > > +#if defined (HAVE_DECL_STRNLEN) && !HAVE_DECL_STRNLEN
>> > > +extern size_t strnlen (const char *, size_t);
>> > > +#endif
>> > > +
>> > >  #if defined(HAVE_DECL_STRVERSCMP) && !HAVE_DECL_STRVERSCMP
>> > >  /* Compare version strings.  */
>> > >  extern int strverscmp (const char *, const char *);
>>
>>
>> Grüße,
>>  Thomas
diff mbox

Patch

--- gcc/configure.ac
+++ gcc/configure.ac
@@ -1136,7 +1136,7 @@  CFLAGS="$CFLAGS -I${srcdir} -I${srcdir}/../include $GMPINC"
 saved_CXXFLAGS="$CXXFLAGS"
 CXXFLAGS="$CXXFLAGS -I${srcdir} -I${srcdir}/../include $GMPINC"
 gcc_AC_CHECK_DECLS(getenv atol asprintf sbrk abort atof getcwd getwd \
-	strsignal strstr stpcpy strverscmp \
+	stpcpy strnlen strsignal strstr strverscmp \
 	errno snprintf vsnprintf vasprintf malloc realloc calloc \
 	free basename getopt clock getpagesize ffs gcc_UNLOCKED_FUNCS, , ,[
 #include "ansidecl.h"
diff --git include/libiberty.h include/libiberty.h
index 7fd0703..56b8b43 100644
--- include/libiberty.h
+++ include/libiberty.h
@@ -636,6 +636,10 @@  extern int snprintf (char *, size_t, const char *, ...) ATTRIBUTE_PRINTF_3;
 extern int vsnprintf (char *, size_t, const char *, va_list) ATTRIBUTE_PRINTF(3,0);
 #endif
 
+#if defined (HAVE_DECL_STRNLEN) && !HAVE_DECL_STRNLEN
+extern size_t strnlen (const char *, size_t);
+#endif
+
 #if defined(HAVE_DECL_STRVERSCMP) && !HAVE_DECL_STRVERSCMP
 /* Compare version strings.  */
 extern int strverscmp (const char *, const char *);