This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Query regarding execute test 960521-1. c in gcc.c-torture
- From: Ian Lance Taylor <ian at airs dot com>
- To: saurabh dot verma at codito dot com
- Cc: gcc at gcc dot gnu dot org
- Date: 28 Sep 2005 12:20:37 -0700
- Subject: Re: Query regarding execute test 960521-1. c in gcc.c-torture
- References: <1127922492.10572.40.camel@localhost.localdomain>
Saurabh Verma <saurabh.verma@codito.com> writes:
> i had a query regarding testcase gcc.c-torture/execute/960521-1.c [Link
> below]. The testcase does the following:
> i) mallocs two integer arrays a and b of size n each
> ii) *b=0 and increment b
> {lets call the new b as bnew, and the old b as bold, so
> that bnew = bold+1,and bold[0]=bnew[-1]=0 }
> iii) sets a[0] to a[n-1] to -1
> iv) sets bnew[0] to bnew[BLOCK_SIZE-2] to -1
> => bold [1] to bold [BLOCK_SIZE-1] to -1
> v) results in PASS if bnew [-1] {i.e. bold[0]} is still zero
> FAILs otherwise
>
> Now this test fails for a particular architecture, because on of the
> mallocs returned zero (the amount of stack and heap available being 65K
> and 20K respectively). This is because the testcase decides the size to
> be malloc'ed based on the stack available. Since the heap space
> available to me is much smaller than the stack, this calculation ( size
> of each array = (STACK_SIZE / (sizeof (*a) + sizeof (*b)))) results in
> an impossibly large malloc request, and the array value setting
> overwrites the text.
>
> Before making any changes to the testcase to adapt it to our
> requirements, i wanted to be sure about the reason for the test, i.e.
> what exactly is the testcase supposed to check for? This is a very old
> testcase and a look at viewcvs shows it as an initial import from egcs
> testsuite base.
I would assume that the test is for some sort of loop optimization.
But the case of heapsize << stacksize is rather unusual, so I think
the simplest thing would be for you to just xfail the test on your
target by creating a 960521-1.x file.
I wouldn't worry about whether your target has some bug that will fail
the test--the test was almost certainly designed to test target
independent code.
Ian