OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-old/] [gcc-4.2.2/] [gcc/] [testsuite/] [gcc.dg/] [tree-ssa/] [ssa-ccp-2.c] - Rev 154

Go to most recent revision | Compare with Previous | Blame | View Log

/* { dg-do compile } */ 
/* { dg-options "-O2 -fdump-tree-optimized" } */
 
extern void link_error (void);
 
 
/* check that cprop for variables of different types still works even
   if function calls or assignments to different types of data are
   interposed.  */
 
int test7 (int *intarr)
{
  extern int foo7 (int);
  int u = 7, v1;
  foo7 (u);
  v1 = u;
  if (v1 != 7)
    link_error ();
  return v1;
}
 
int test77 (int *arr)
{
  int u = 7, v1;
  arr[0] = 4;
  v1 = u;
  if (v1 != 7)
    link_error ();
  return v1 + arr[0];
}
 
int test777 (void)
{
  extern int foo(int *);
  int u = 7, v1;
  static int sarr[10];
  sarr[0] = 4;
  v1 = u;
  if (v1 != 7)
    link_error ();
  foo (sarr);
  return v1 + sarr[0];
}
 
int garr[10];
int test7777 (void)
{
  int u = 7, v1;
  garr[0] = 4;
  v1 = u;
  if (v1 != 7)
    link_error ();
  return v1 + garr[0];
}
 
int test88 (int *arr)
{
  static int l;
  int v1;
  l = 8;
  arr[0] = 4;
  v1 = l;
  if (v1 != 8)
    link_error ();
  l = foo88 (l);
  return v1 + arr[0];
}
 
int test888 (void)
{
  static int l;
  extern int foo(int *);
  int v1;
  static int sarr[10];
  l = 8;
  sarr[0] = 4;
  v1 = l;
  if (v1 != 8)
    link_error ();
  foo (sarr);
  l = foo88(l);
  return v1 + sarr[0];
}
 
int test8888 (void)
{
  static int l;
  int v1;
  l = 8;
  garr[0] = 4;
  v1 = l;
  if (v1 != 8)
    link_error ();
  return v1 + garr[0];
}
 
 
 
/* global var  */
int g9;
int garr9[10];
int test9 (int *intarr)
{
  extern int foo9 (int) __attribute__ ((const));
  int h, v;
  g9 = 9;
  h = foo9 (g9);
  v = g9;
  if (v != 9)
    link_error ();
  return g9;
}
 
int test99 (int *intarr)
{
  extern int foo9 (int) __attribute__ ((pure));
  int h, v;
  g9 = 9;
  h = foo9 (g9);
  v = g9;
  if (v != 9)
    link_error ();
  return g9;
}
 
extern int foo99 (int);
 
int test999 (int *arr)
{
  static int l;
  int v1;
  g9 = 9;
  l = 4;
  v1 = g9;
  if (v1 != 9)
    link_error ();
  l = foo99 (l);
  return v1 + l;
}
 
 
int test9999 (void)
{
  int v1;
  static int sarr[10];
  g9 = 9;
  sarr[0] = 4;
  v1 = g9;
  if (v1 != 9)
    link_error ();
  foo (sarr);
  g9 = foo99 (g9);
  return v1 + sarr[0];
}
 
 
int test99999 (void)
{
  int v1;
  g9 = 9;
  garr9[0] = 4;
  v1 = g9;
  if (v1 != 9)
    link_error ();
  return v1 + garr9[0];
}
 
 
/* There should be not link_error calls, if there is any the
   optimization has failed */
/* { dg-final { scan-tree-dump-times "link_error" 0 "optimized"} } */
/* { dg-final { cleanup-tree-dump "optimized" } } */
 

Go to most recent revision | Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.