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

Subversion Repositories openrisc_me

[/] [openrisc/] [trunk/] [gnu-src/] [gcc-4.2.2/] [gcc/] [testsuite/] [gcc.c-torture/] [execute/] [builtins/] [strlen.c] - Diff between revs 149 and 154

Only display areas with differences | Details | Blame | View Log

Rev 149 Rev 154
/* Copyright (C) 2000, 2001, 2003, 2004  Free Software Foundation.
/* Copyright (C) 2000, 2001, 2003, 2004  Free Software Foundation.
 
 
   Ensure all expected transformations of builtin strlen
   Ensure all expected transformations of builtin strlen
   occur and perform correctly.
   occur and perform correctly.
 
 
   Written by Jakub Jelinek, 11/7/2000.
   Written by Jakub Jelinek, 11/7/2000.
 
 
   Additional tests written by Roger Sayle, 11/02/2001:
   Additional tests written by Roger Sayle, 11/02/2001:
   Ensure all builtin strlen comparisons against zero are optimized
   Ensure all builtin strlen comparisons against zero are optimized
   and perform correctly. The multiple calls to strcpy are to prevent
   and perform correctly. The multiple calls to strcpy are to prevent
   the potentially "pure" strlen calls from being removed by CSE. */
   the potentially "pure" strlen calls from being removed by CSE. */
 
 
extern void abort (void);
extern void abort (void);
extern __SIZE_TYPE__ strlen (const char *);
extern __SIZE_TYPE__ strlen (const char *);
extern char *strcpy (char *, const char *);
extern char *strcpy (char *, const char *);
 
 
int x = 6;
int x = 6;
 
 
void
void
main_test(void)
main_test(void)
{
{
  const char *const foo = "hello world";
  const char *const foo = "hello world";
  char str[8];
  char str[8];
  char *ptr;
  char *ptr;
 
 
  if (strlen (foo) != 11)
  if (strlen (foo) != 11)
    abort ();
    abort ();
  if (strlen (foo + 4) != 7)
  if (strlen (foo + 4) != 7)
    abort ();
    abort ();
  if (strlen (foo + (x++ & 7)) != 5)
  if (strlen (foo + (x++ & 7)) != 5)
    abort ();
    abort ();
  if (x != 7)
  if (x != 7)
    abort ();
    abort ();
 
 
  ptr = str;
  ptr = str;
  strcpy (ptr, "nts");
  strcpy (ptr, "nts");
  if (strlen (ptr) == 0)
  if (strlen (ptr) == 0)
    abort ();
    abort ();
 
 
  strcpy (ptr, "nts");
  strcpy (ptr, "nts");
  if (strlen (ptr) < 1)
  if (strlen (ptr) < 1)
    abort ();
    abort ();
 
 
  strcpy (ptr, "nts");
  strcpy (ptr, "nts");
  if (strlen (ptr) <= 0)
  if (strlen (ptr) <= 0)
    abort ();
    abort ();
 
 
  strcpy (ptr, "nts");
  strcpy (ptr, "nts");
  if (strlen (ptr+3) != 0)
  if (strlen (ptr+3) != 0)
    abort ();
    abort ();
 
 
  strcpy (ptr, "nts");
  strcpy (ptr, "nts");
  if (strlen (ptr+3) > 0)
  if (strlen (ptr+3) > 0)
    abort ();
    abort ();
 
 
  strcpy (ptr, "nts");
  strcpy (ptr, "nts");
  if (strlen (str+3) >= 1)
  if (strlen (str+3) >= 1)
    abort ();
    abort ();
 
 
  /* Test at least one instance of the __builtin_ style.  We do this
  /* Test at least one instance of the __builtin_ style.  We do this
     to ensure that it works and that the prototype is correct.  */
     to ensure that it works and that the prototype is correct.  */
  if (__builtin_strlen (foo) != 11)
  if (__builtin_strlen (foo) != 11)
    abort ();
    abort ();
}
}
 
 

powered by: WebSVN 2.1.0

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