This is the mail archive of the gcc@gcc.gnu.org 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: GCC 4.3.2 bug (was: Illegal subtraction in tmp-dive_1.s)


On 2009-04-17 12:09:42 -0500, Gabriel Dos Reis wrote:
> At least, let's get it archived on GCC mailing lists.

Is it a bug that has been identified? If not, perhaps this should
be added to the regression tests.

The program without the quotes:

/* With GCC 4.3.2 and -O2 option: output value is 1 instead of 0.
 * If -fno-strict-aliasing is added, this bug disappears.
 */

#include <stdio.h>
#include <stdlib.h>

int test (int n)
{
  unsigned long *p, *q;
  int i;

  q = p = malloc (n * sizeof (unsigned long));
  if (p == NULL)
    return 2;
  for (i = 0; i < n - 1; i++)
    p[i] = 0;
  p[n - 1] = 1;
  while ((*(q++))-- == 0) ;
  return p[n - 1] == 1;
}

int main (void)
{
  int r;

  r = test (17);
  printf ("%d\n", r);
  return r;
}

-- 
Vincent Lefèvre <vincent@vinc17.org> - Web: <http://www.vinc17.org/>
100% accessible validated (X)HTML - Blog: <http://www.vinc17.org/blog/>
Work: CR INRIA - computer arithmetic / Arenaire project (LIP, ENS-Lyon)


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