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/] [fputs.c] - Diff between revs 297 and 338

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

Rev 297 Rev 338
/* Copyright (C) 2000, 2001  Free Software Foundation.
/* Copyright (C) 2000, 2001  Free Software Foundation.
 
 
   Ensure all expected transformations of builtin fputs occur and that
   Ensure all expected transformations of builtin fputs occur and that
   we honor side effects in the stream argument.
   we honor side effects in the stream argument.
 
 
   Written by Kaveh R. Ghazi, 10/30/2000.  */
   Written by Kaveh R. Ghazi, 10/30/2000.  */
 
 
#include <stdio.h>
#include <stdio.h>
extern void abort(void);
extern void abort(void);
 
 
int i;
int i;
 
 
void
void
main_test(void)
main_test(void)
{
{
  FILE *s_array[] = {stdout, NULL}, **s_ptr = s_array;
  FILE *s_array[] = {stdout, NULL}, **s_ptr = s_array;
  const char *const s1 = "hello world";
  const char *const s1 = "hello world";
 
 
  fputs ("", *s_ptr);
  fputs ("", *s_ptr);
  fputs ("\n", *s_ptr);
  fputs ("\n", *s_ptr);
  fputs ("bye", *s_ptr);
  fputs ("bye", *s_ptr);
  fputs (s1, *s_ptr);
  fputs (s1, *s_ptr);
  fputs (s1+5, *s_ptr);
  fputs (s1+5, *s_ptr);
  fputs (s1+10, *s_ptr);
  fputs (s1+10, *s_ptr);
  fputs (s1+11, *s_ptr);
  fputs (s1+11, *s_ptr);
 
 
  /* Check side-effects when transforming fputs -> NOP.  */
  /* Check side-effects when transforming fputs -> NOP.  */
  fputs ("", *s_ptr++);
  fputs ("", *s_ptr++);
  if (s_ptr != s_array+1 || *s_ptr != 0)
  if (s_ptr != s_array+1 || *s_ptr != 0)
    abort();
    abort();
 
 
  /* Check side-effects when transforming fputs -> fputc.  */
  /* Check side-effects when transforming fputs -> fputc.  */
  s_ptr = s_array;
  s_ptr = s_array;
  fputs ("\n", *s_ptr++);
  fputs ("\n", *s_ptr++);
  if (s_ptr != s_array+1 || *s_ptr != 0)
  if (s_ptr != s_array+1 || *s_ptr != 0)
    abort();
    abort();
 
 
  /* Check side-effects when transforming fputs -> fwrite.  */
  /* Check side-effects when transforming fputs -> fwrite.  */
  s_ptr = s_array;
  s_ptr = s_array;
  fputs ("hello\n", *s_ptr++);
  fputs ("hello\n", *s_ptr++);
  if (s_ptr != s_array+1 || *s_ptr != 0)
  if (s_ptr != s_array+1 || *s_ptr != 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.  */
  s_ptr = s_array;
  s_ptr = s_array;
  __builtin_fputs ("", *s_ptr);
  __builtin_fputs ("", *s_ptr);
  /* These builtin stubs are called by __builtin_fputs, ensure their
  /* These builtin stubs are called by __builtin_fputs, ensure their
     prototypes are set correctly too.  */
     prototypes are set correctly too.  */
  __builtin_fputc ('\n', *s_ptr);
  __builtin_fputc ('\n', *s_ptr);
  __builtin_fwrite ("hello\n", 1, 6, *s_ptr);
  __builtin_fwrite ("hello\n", 1, 6, *s_ptr);
  /* Check the unlocked style, these evaluate to nothing to avoid
  /* Check the unlocked style, these evaluate to nothing to avoid
     problems on systems without the unlocked functions.  */
     problems on systems without the unlocked functions.  */
  fputs_unlocked ("", *s_ptr);
  fputs_unlocked ("", *s_ptr);
  __builtin_fputs_unlocked ("", *s_ptr);
  __builtin_fputs_unlocked ("", *s_ptr);
 
 
  /* Check side-effects in conditional expression.  */
  /* Check side-effects in conditional expression.  */
  s_ptr = s_array;
  s_ptr = s_array;
  fputs (i++ ? "f" : "x", *s_ptr++);
  fputs (i++ ? "f" : "x", *s_ptr++);
  if (s_ptr != s_array+1 || *s_ptr != 0 || i != 1)
  if (s_ptr != s_array+1 || *s_ptr != 0 || i != 1)
    abort();
    abort();
  fputs (--i ? "\n" : "\n", *--s_ptr);
  fputs (--i ? "\n" : "\n", *--s_ptr);
  if (s_ptr != s_array || i != 0)
  if (s_ptr != s_array || i != 0)
    abort();
    abort();
}
}
 
 

powered by: WebSVN 2.1.0

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