]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
testsuite_hooks.h (__set_testsuite_memlimit): Retrieve current limits before setting.
authorRainer Orth <ro@TechFak.Uni-Bielefeld.DE>
Thu, 23 May 2002 17:01:30 +0000 (17:01 +0000)
committerRainer Orth <ro@gcc.gnu.org>
Thu, 23 May 2002 17:01:30 +0000 (17:01 +0000)
* testsuite/testsuite_hooks.h (__set_testsuite_memlimit): Retrieve
current limits before setting.

From-SVN: r53795

libstdc++-v3/ChangeLog
libstdc++-v3/testsuite/testsuite_hooks.h

index 6423488cde13cd85f5aca3a2b3764e914abe16a5..a0c302784338d81e36b16ef00fa4dfc33492e308 100644 (file)
@@ -1,5 +1,8 @@
 2002-05-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
 
+       * testsuite/testsuite_hooks.h (__set_testsuite_memlimit): Retrieve
+       current limits before setting.
+
        * acinclude.m4 (enable_symvers): Quote $LD.
        * aclocal.m4: Regenerate.
        * configure: Likewise.
index 08d93d382745e6242144db09c1a1fa32dcb0068d..eb87d51f2973b4fea0e986858939990abca1dd4a 100644 (file)
@@ -81,25 +81,33 @@ void
 __set_testsuite_memlimit(float __size = MEMLIMIT_MB)
 {
     struct rlimit r;
-    r.rlim_cur = (rlim_t)(__size * 1048576);
+    rlim_t limit = (rlim_t)(__size * 1048576);
 
     // Heap size, seems to be common.
 #if _GLIBCPP_HAVE_MEMLIMIT_DATA
+    getrlimit(RLIMIT_DATA, &r);
+    r.rlim_cur = limit;
     setrlimit(RLIMIT_DATA, &r);
 #endif
 
     // Resident set size.
 #if _GLIBCPP_HAVE_MEMLIMIT_RSS
+    getrlimit(RLIMIT_RSS, &r);
+    r.rlim_cur = limit;
     setrlimit(RLIMIT_RSS, &r);
 #endif
 
     // Mapped memory (brk + mmap).
 #if _GLIBCPP_HAVE_MEMLIMIT_VMEM
+    getrlimit(RLIMIT_VMEM, &r);
+    r.rlim_cur = limit;
     setrlimit(RLIMIT_VMEM, &r);
 #endif
 
     // Virtual memory.
 #if _GLIBCPP_HAVE_MEMLIMIT_AS
+    getrlimit(RLIMIT_AS, &r);
+    r.rlim_cur = limit;
     setrlimit(RLIMIT_AS, &r);
 #endif
 }