This is the mail archive of the mailing list for the GCC project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Query regarding execute test 960521-1. c in gcc.c-torture

Saurabh Verma <> 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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]