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

Subversion Repositories openrisc

[/] [openrisc/] [tags/] [gnu-src/] [gcc-4.5.1/] [gcc-4.5.1-or32-1.0rc1/] [gcc/] [testsuite/] [gcc.c-torture/] [execute/] [builtins/] [strrchr.c] - Diff between revs 297 and 338

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

Rev 297 Rev 338
/* Copyright (C) 2000, 2003, 2004  Free Software Foundation.
/* Copyright (C) 2000, 2003, 2004  Free Software Foundation.
 
 
   Ensure all expected transformations of builtin strrchr and rindex
   Ensure all expected transformations of builtin strrchr and rindex
   occur and perform correctly.
   occur and perform correctly.
 
 
   Written by Jakub Jelinek, 11/7/2000.  */
   Written by Jakub Jelinek, 11/7/2000.  */
 
 
extern void abort (void);
extern void abort (void);
extern char *strrchr (const char *, int);
extern char *strrchr (const char *, int);
extern char *rindex (const char *, int);
extern char *rindex (const char *, int);
 
 
char *bar = "hi world";
char *bar = "hi world";
int x = 7;
int x = 7;
 
 
void
void
main_test (void)
main_test (void)
{
{
  const char *const foo = "hello world";
  const char *const foo = "hello world";
 
 
  if (strrchr (foo, 'x'))
  if (strrchr (foo, 'x'))
    abort ();
    abort ();
  if (strrchr (foo, 'o') != foo + 7)
  if (strrchr (foo, 'o') != foo + 7)
    abort ();
    abort ();
  if (strrchr (foo, 'e') != foo + 1)
  if (strrchr (foo, 'e') != foo + 1)
    abort ();
    abort ();
  if (strrchr (foo + 3, 'e'))
  if (strrchr (foo + 3, 'e'))
    abort ();
    abort ();
  if (strrchr (foo, '\0') != foo + 11)
  if (strrchr (foo, '\0') != foo + 11)
    abort ();
    abort ();
  if (strrchr (bar, '\0') != bar + 8)
  if (strrchr (bar, '\0') != bar + 8)
    abort ();
    abort ();
  if (strrchr (bar + 4, '\0') != bar + 8)
  if (strrchr (bar + 4, '\0') != bar + 8)
    abort ();
    abort ();
  if (strrchr (bar + (x++ & 3), '\0') != bar + 8)
  if (strrchr (bar + (x++ & 3), '\0') != bar + 8)
    abort ();
    abort ();
  if (x != 8)
  if (x != 8)
    abort ();
    abort ();
  /* Test only one instance of rindex since the code path is the same
  /* Test only one instance of rindex since the code path is the same
     as that of strrchr. */
     as that of strrchr. */
  if (rindex ("hello", 'z') != 0)
  if (rindex ("hello", 'z') != 0)
    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_strrchr (foo, 'o') != foo + 7)
  if (__builtin_strrchr (foo, 'o') != foo + 7)
    abort ();
    abort ();
  if (__builtin_rindex (foo, 'o') != foo + 7)
  if (__builtin_rindex (foo, 'o') != foo + 7)
    abort ();
    abort ();
}
}
 
 

powered by: WebSVN 2.1.0

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