mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-01-26 01:24:36 +08:00
re PR c++/49756 (g++ ICE)
PR c++/49756 * libiberty.h (stack_limit_increase): New prototype. * stack-limit.c: New file. * Makefile.in: Regenerate deps. (CFILES): Add stack-limit.c. (REQUIRED_OFILES): Add ./stack-limit.$(objext). * configure.ac (checkfuncs): Add getrlimit and setrlimit. (AC_CHECK_FUNCS): Likewise. * configure: Regenerated. * config.in: Regenerated. * gcc.c (main): Call stack_limit_increase (64MB). * toplev.c (toplev_main): Likewise. From-SVN: r176617
This commit is contained in:
parent
e05de0a910
commit
d423df4823
@ -1,3 +1,9 @@
|
||||
2011-07-22 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR c++/49756
|
||||
* gcc.c (main): Call stack_limit_increase (64MB).
|
||||
* toplev.c (toplev_main): Likewise.
|
||||
|
||||
2011-07-21 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
* config/i386/i386.c (ix86_expand_call): Call copy_to_mode_reg
|
||||
|
@ -6156,6 +6156,10 @@ main (int argc, char **argv)
|
||||
signal (SIGCHLD, SIG_DFL);
|
||||
#endif
|
||||
|
||||
/* Parsing and gimplification sometimes need quite large stack.
|
||||
Increase stack size limits if possible. */
|
||||
stack_limit_increase (64 * 1024 * 1024);
|
||||
|
||||
/* Allocate the argument vector. */
|
||||
alloc_args ();
|
||||
|
||||
|
@ -1911,6 +1911,10 @@ do_compile (void)
|
||||
int
|
||||
toplev_main (int argc, char **argv)
|
||||
{
|
||||
/* Parsing and gimplification sometimes need quite large stack.
|
||||
Increase stack size limits if possible. */
|
||||
stack_limit_increase (64 * 1024 * 1024);
|
||||
|
||||
expandargv (&argc, &argv);
|
||||
|
||||
/* Initialization of GCC's environment, and diagnostics. */
|
||||
|
@ -1,3 +1,8 @@
|
||||
2011-07-22 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR c++/49756
|
||||
* libiberty.h (stack_limit_increase): New prototype.
|
||||
|
||||
2011-07-13 Sriraman Tallam <tmsriram@google.com>
|
||||
|
||||
* plugin-api.h
|
||||
|
@ -1,7 +1,7 @@
|
||||
/* Function declarations for libiberty.
|
||||
|
||||
Copyright 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
|
||||
2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
|
||||
2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
|
||||
|
||||
Note - certain prototypes declared in this header file are for
|
||||
functions whoes implementation copyright does not belong to the
|
||||
@ -637,6 +637,9 @@ extern int strverscmp (const char *, const char *);
|
||||
/* Set the title of a process */
|
||||
extern void setproctitle (const char *name, ...);
|
||||
|
||||
/* Increase stack limit if possible. */
|
||||
extern void stack_limit_increase (unsigned long);
|
||||
|
||||
#define ARRAY_SIZE(a) (sizeof (a) / sizeof ((a)[0]))
|
||||
|
||||
/* Drastically simplified alloca configurator. If we're using GCC,
|
||||
|
@ -1,3 +1,15 @@
|
||||
2011-07-22 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR c++/49756
|
||||
* stack-limit.c: New file.
|
||||
* Makefile.in: Regenerate deps.
|
||||
(CFILES): Add stack-limit.c.
|
||||
(REQUIRED_OFILES): Add ./stack-limit.$(objext).
|
||||
* configure.ac (checkfuncs): Add getrlimit and setrlimit.
|
||||
(AC_CHECK_FUNCS): Likewise.
|
||||
* configure: Regenerated.
|
||||
* config.in: Regenerated.
|
||||
|
||||
2011-07-04 Jason Merrill <jason@redhat.com>
|
||||
|
||||
* cp-demangle.c (d_expression): Handle 'this'.
|
||||
|
@ -2,7 +2,7 @@
|
||||
# Originally written by K. Richard Pixley <rich@cygnus.com>.
|
||||
#
|
||||
# Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
|
||||
# 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
|
||||
# 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
|
||||
# Free Software Foundation
|
||||
#
|
||||
# This file is part of the libiberty library.
|
||||
@ -148,10 +148,10 @@ CFILES = alloca.c argv.c asprintf.c atexit.c \
|
||||
simple-object.c simple-object-coff.c simple-object-elf.c \
|
||||
simple-object-mach-o.c \
|
||||
snprintf.c sort.c \
|
||||
spaces.c splay-tree.c stpcpy.c stpncpy.c strcasecmp.c \
|
||||
strchr.c strdup.c strerror.c strncasecmp.c strncmp.c \
|
||||
strrchr.c strsignal.c strstr.c strtod.c strtol.c strtoul.c \
|
||||
strndup.c strverscmp.c \
|
||||
spaces.c splay-tree.c stack-limit.c stpcpy.c stpncpy.c \
|
||||
strcasecmp.c strchr.c strdup.c strerror.c strncasecmp.c \
|
||||
strncmp.c strrchr.c strsignal.c strstr.c strtod.c strtol.c \
|
||||
strtoul.c strndup.c strverscmp.c \
|
||||
tmpnam.c \
|
||||
unlink-if-ordinary.c \
|
||||
vasprintf.c vfork.c vfprintf.c vprintf.c vsnprintf.c vsprintf.c \
|
||||
@ -183,7 +183,8 @@ REQUIRED_OFILES = \
|
||||
./simple-object.$(objext) ./simple-object-coff.$(objext) \
|
||||
./simple-object-elf.$(objext) ./simple-object-mach-o.$(objext) \
|
||||
./sort.$(objext) ./spaces.$(objext) \
|
||||
./splay-tree.$(objext) ./strerror.$(objext) \
|
||||
./splay-tree.$(objext) ./stack-limit.$(objext) \
|
||||
./strerror.$(objext) \
|
||||
./strsignal.$(objext) ./unlink-if-ordinary.$(objext) \
|
||||
./xatexit.$(objext) ./xexit.$(objext) ./xmalloc.$(objext) \
|
||||
./xmemdup.$(objext) ./xstrdup.$(objext) ./xstrerror.$(objext) \
|
||||
@ -1033,6 +1034,12 @@ $(CONFIGURED_OFILES): stamp-picdir
|
||||
else true; fi
|
||||
$(COMPILE.c) $(srcdir)/splay-tree.c $(OUTPUT_OPTION)
|
||||
|
||||
./stack-limit.$(objext): $(srcdir)/stack-limit.c config.h
|
||||
if [ x"$(PICFLAG)" != x ]; then \
|
||||
$(COMPILE.c) $(PICFLAG) $(srcdir)/stack-limit.c -o pic/$@; \
|
||||
else true; fi
|
||||
$(COMPILE.c) $(srcdir)/stack-limit.c $(OUTPUT_OPTION)
|
||||
|
||||
./stpcpy.$(objext): $(srcdir)/stpcpy.c $(INCDIR)/ansidecl.h
|
||||
if [ x"$(PICFLAG)" != x ]; then \
|
||||
$(COMPILE.c) $(PICFLAG) $(srcdir)/stpcpy.c -o pic/$@; \
|
||||
|
@ -109,6 +109,9 @@
|
||||
/* Define to 1 if you have the `getpagesize' function. */
|
||||
#undef HAVE_GETPAGESIZE
|
||||
|
||||
/* Define to 1 if you have the `getrlimit' function. */
|
||||
#undef HAVE_GETRLIMIT
|
||||
|
||||
/* Define to 1 if you have the `getrusage' function. */
|
||||
#undef HAVE_GETRUSAGE
|
||||
|
||||
@ -205,6 +208,9 @@
|
||||
/* Define to 1 if you have the `setproctitle' function. */
|
||||
#undef HAVE_SETPROCTITLE
|
||||
|
||||
/* Define to 1 if you have the `setrlimit' function. */
|
||||
#undef HAVE_SETRLIMIT
|
||||
|
||||
/* Define to 1 if you have the `sigsetmask' function. */
|
||||
#undef HAVE_SIGSETMASK
|
||||
|
||||
|
12
libiberty/configure
vendored
12
libiberty/configure
vendored
@ -5293,10 +5293,10 @@ funcs="$funcs setproctitle"
|
||||
|
||||
vars="sys_errlist sys_nerr sys_siglist"
|
||||
|
||||
checkfuncs="__fsetlocking canonicalize_file_name dup3 getrusage getsysinfo \
|
||||
gettimeofday on_exit psignal pstat_getdynamic pstat_getstatic realpath \
|
||||
sbrk spawnve spawnvpe strerror strsignal sysconf sysctl sysmp table \
|
||||
times wait3 wait4"
|
||||
checkfuncs="__fsetlocking canonicalize_file_name dup3 getrlimit getrusage \
|
||||
getsysinfo gettimeofday on_exit psignal pstat_getdynamic pstat_getstatic \
|
||||
realpath setrlimit sbrk spawnve spawnvpe strerror strsignal sysconf sysctl \
|
||||
sysmp table times wait3 wait4"
|
||||
|
||||
# These are neither executed nor required, but they help keep
|
||||
# autoheader happy without adding a bunch of text to acconfig.h.
|
||||
@ -5306,13 +5306,13 @@ if test "x" = "y"; then
|
||||
calloc canonicalize_file_name clock \
|
||||
dup3 \
|
||||
ffs __fsetlocking \
|
||||
getcwd getpagesize getrusage getsysinfo gettimeofday \
|
||||
getcwd getpagesize getrlimit getrusage getsysinfo gettimeofday \
|
||||
index insque \
|
||||
memchr memcmp memcpy memmem memmove memset mkstemps \
|
||||
on_exit \
|
||||
psignal pstat_getdynamic pstat_getstatic putenv \
|
||||
random realpath rename rindex \
|
||||
sbrk setenv setproctitle sigsetmask snprintf spawnve spawnvpe \
|
||||
sbrk setenv setproctitle setrlimit sigsetmask snprintf spawnve spawnvpe \
|
||||
stpcpy stpncpy strcasecmp strchr strdup \
|
||||
strerror strncasecmp strndup strrchr strsignal strstr strtod strtol \
|
||||
strtoul strverscmp sysconf sysctl sysmp \
|
||||
|
@ -358,10 +358,10 @@ funcs="$funcs setproctitle"
|
||||
|
||||
vars="sys_errlist sys_nerr sys_siglist"
|
||||
|
||||
checkfuncs="__fsetlocking canonicalize_file_name dup3 getrusage getsysinfo \
|
||||
gettimeofday on_exit psignal pstat_getdynamic pstat_getstatic realpath \
|
||||
sbrk spawnve spawnvpe strerror strsignal sysconf sysctl sysmp table \
|
||||
times wait3 wait4"
|
||||
checkfuncs="__fsetlocking canonicalize_file_name dup3 getrlimit getrusage \
|
||||
getsysinfo gettimeofday on_exit psignal pstat_getdynamic pstat_getstatic \
|
||||
realpath setrlimit sbrk spawnve spawnvpe strerror strsignal sysconf sysctl \
|
||||
sysmp table times wait3 wait4"
|
||||
|
||||
# These are neither executed nor required, but they help keep
|
||||
# autoheader happy without adding a bunch of text to acconfig.h.
|
||||
@ -371,13 +371,13 @@ if test "x" = "y"; then
|
||||
calloc canonicalize_file_name clock \
|
||||
dup3 \
|
||||
ffs __fsetlocking \
|
||||
getcwd getpagesize getrusage getsysinfo gettimeofday \
|
||||
getcwd getpagesize getrlimit getrusage getsysinfo gettimeofday \
|
||||
index insque \
|
||||
memchr memcmp memcpy memmem memmove memset mkstemps \
|
||||
on_exit \
|
||||
psignal pstat_getdynamic pstat_getstatic putenv \
|
||||
random realpath rename rindex \
|
||||
sbrk setenv setproctitle sigsetmask snprintf spawnve spawnvpe \
|
||||
sbrk setenv setproctitle setrlimit sigsetmask snprintf spawnve spawnvpe \
|
||||
stpcpy stpncpy strcasecmp strchr strdup \
|
||||
strerror strncasecmp strndup strrchr strsignal strstr strtod strtol \
|
||||
strtoul strverscmp sysconf sysctl sysmp \
|
||||
|
Loading…
Reference in New Issue
Block a user