From eade8e035cb78c89bc37371f17427134ab7d768d Mon Sep 17 00:00:00 2001 From: Michael Meissner Date: Sat, 25 Nov 1995 06:08:56 +0000 Subject: Check lf_printf for type correctness --- sim/ppc/ChangeLog | 5 ++++ sim/ppc/lf.h | 90 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 95 insertions(+) create mode 100644 sim/ppc/lf.h (limited to 'sim') diff --git a/sim/ppc/ChangeLog b/sim/ppc/ChangeLog index 524b87f..fd2c87e 100644 --- a/sim/ppc/ChangeLog +++ b/sim/ppc/ChangeLog @@ -1,5 +1,10 @@ Fri Nov 24 11:24:34 1995 Michael Meissner + * lf.h (__attribute__): If not GCC and at least 2.7.0, define as + nothing. + (lf_printf): Add printf __attribute__, so the compiler will + automatically check the format string. + * configure{,.in} (--enable-sim-icache): If argument is define, add -R to flags passed to igen. diff --git a/sim/ppc/lf.h b/sim/ppc/lf.h new file mode 100644 index 0000000..13017f1 --- /dev/null +++ b/sim/ppc/lf.h @@ -0,0 +1,90 @@ +/* This file is part of the program psim. + + Copyright (C) 1994-1995, Andrew Cagney + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + */ + + +/* LF: Line Numbered Output Stream */ + +typedef struct _lf lf; + + +#if !defined (__attribute__) && (!defined(__GNUC__) || __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 7)) +#define __attribute__(arg) +#endif + +/* Open the file NAME for writing. REAL_NAME is to be included in any + line number outputs. The output of line number information can be + suppressed with LINE_NUMBERS */ +extern lf *lf_open +(char *name, + char *real_name, + int number_lines); + +extern void lf_close +(lf *file); + + +/* Suppress indentation for the next new line (current if not yet + started) */ +extern void lf_indent_suppress +(lf *file); + +extern void lf_putchr +(lf *file, + const char ch); + +extern void lf_putstr +(lf *file, + const char *string); + +extern void lf_putint +(lf *file, + int decimal); + +extern void lf_printf +(lf *file, + const char *fmt, + ...) __attribute__((format(printf, 2, 3))); + +extern void lf_print_lf_c_line_nr +(lf *file); + +extern void lf_indent +(lf *file, + int delta); + +extern void lf_print_copyleft +(lf *file); + +extern void lf_print_binary +(lf *file, + int decimal, + int width); + +/* it is assumed that each line of code is prefixed by a tab character + that should be suppressed */ +extern void lf_print_c_code +(lf *file, + char *code); + + +extern void lf_print_c_line_nr +(lf *file, + int line_nr, + char *file_name); -- cgit v1.1