aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2011-07-22 10:33:37 +0200
committerJakub Jelinek <jakub@gcc.gnu.org>2011-07-22 10:33:37 +0200
commitd423df48237b2533a1781d177caf8419e1262d5b (patch)
tree2bd70c0d114f37575687da7d0ce9ef17bc9cbcc3 /gcc
parente05de0a910810a34fce108d85f0574a6be53b6e7 (diff)
downloadgcc-d423df48237b2533a1781d177caf8419e1262d5b.zip
gcc-d423df48237b2533a1781d177caf8419e1262d5b.tar.gz
gcc-d423df48237b2533a1781d177caf8419e1262d5b.tar.bz2
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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/gcc.c4
-rw-r--r--gcc/toplev.c4
3 files changed, 14 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 5ac6697..d27b255 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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
diff --git a/gcc/gcc.c b/gcc/gcc.c
index 5e5d3c2..fc0cb1b 100644
--- a/gcc/gcc.c
+++ b/gcc/gcc.c
@@ -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 ();
diff --git a/gcc/toplev.c b/gcc/toplev.c
index 109325c..de0a58a 100644
--- a/gcc/toplev.c
+++ b/gcc/toplev.c
@@ -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. */