X-Git-Url: http://git.sourceforge.jp/view?p=pf3gnuchains%2Fgcc-fork.git;a=blobdiff_plain;f=gcc%2Fgcc.h;h=560c7f914883657e4a65aa3071f4e4425685a0fc;hp=3e870e2b590f40a0a4bbca3a2357146b532badc7;hb=c1c059f06e7624a2e6bba56427f2f985e2ac7349;hpb=7f0b0c275fbaeae21c3257af05ed98fe64837330 diff --git a/gcc/gcc.h b/gcc/gcc.h index 3e870e2b590..560c7f91488 100644 --- a/gcc/gcc.h +++ b/gcc/gcc.h @@ -1,43 +1,83 @@ /* Header file for modules that link with gcc.c - Copyright (C) 1999 Free Software Foundation, Inc. + Copyright (C) 1999, 2000, 2001, 2003, 2004, 2007, 2008 + Free Software Foundation, Inc. -This file is part of GNU CC. +This file is part of GCC. -GNU CC 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, or (at your option) -any later version. +GCC 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 3, or (at your option) any later +version. -GNU CC 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. +GCC 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 GNU CC; see the file COPYING. If not, write to -the Free Software Foundation, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ +along with GCC; see the file COPYING3. If not see +. */ -#ifndef __GCC_H__ -#define __GCC_H__ +#ifndef GCC_GCC_H +#define GCC_GCC_H -/* These are exported by gcc.c. */ -extern int do_spec PARAMS ((const char *)); -extern void fancy_abort PARAMS ((void)) ATTRIBUTE_NORETURN; -extern const char *input_filename; -extern size_t input_filename_length; -extern void fatal PARAMS ((const char *, ...)) - ATTRIBUTE_PRINTF_1 ATTRIBUTE_NORETURN; +#include "version.h" -/* Spec files linked with gcc.c must provide definitions for these. */ +/* The mapping of a spec function name to the C function that + implements it. */ +struct spec_function +{ + const char *name; + const char *(*func) (int, const char **); +}; -/* Called before processing to change/add/remove arguments. */ -extern void lang_specific_driver PARAMS ((int *, char ***, int *)); +/* This defines which switch letters take arguments. */ -/* Called before linking. Returns 0 on success and -1 on failure. */ -extern int lang_specific_pre_link PARAMS ((void)); +#define DEFAULT_SWITCH_TAKES_ARG(CHAR) \ + ((CHAR) == 'D' || (CHAR) == 'U' || (CHAR) == 'o' \ + || (CHAR) == 'e' || (CHAR) == 'T' || (CHAR) == 'u' \ + || (CHAR) == 'I' || (CHAR) == 'J' || (CHAR) == 'm' \ + || (CHAR) == 'x' || (CHAR) == 'L' || (CHAR) == 'A' \ + || (CHAR) == 'V' || (CHAR) == 'B' || (CHAR) == 'b') -/* Number of extra output files that lang_specific_pre_link may generate. */ +/* This defines which multi-letter switches take arguments. */ + +#define DEFAULT_WORD_SWITCH_TAKES_ARG(STR) \ + (!strcmp (STR, "Tdata") || !strcmp (STR, "Ttext") \ + || !strcmp (STR, "Tbss") || !strcmp (STR, "include") \ + || !strcmp (STR, "imacros") || !strcmp (STR, "aux-info") \ + || !strcmp (STR, "idirafter") || !strcmp (STR, "iprefix") \ + || !strcmp (STR, "iwithprefix") || !strcmp (STR, "iwithprefixbefore") \ + || !strcmp (STR, "iquote") || !strcmp (STR, "isystem") \ + || !strcmp (STR, "isysroot") \ + || !strcmp (STR, "-param") || !strcmp (STR, "specs") \ + || !strcmp (STR, "MF") || !strcmp (STR, "MT") || !strcmp (STR, "MQ") \ + || !strcmp (STR, "fintrinsic-modules-path") || !strcmp (STR, "dumpbase")) + + +/* These are exported by gcc.c. */ +extern int do_spec (const char *); +extern void record_temp_file (const char *, int, int); +extern void fatal (const char *, ...) ATTRIBUTE_PRINTF_1 ATTRIBUTE_NORETURN; +extern void error (const char *, ...) ATTRIBUTE_PRINTF_1; +extern void pfatal_with_name (const char *) ATTRIBUTE_NORETURN; +extern void set_input (const char *); + +/* Spec files linked with gcc.c must provide definitions for these. */ + +/* Called before processing to change/add/remove arguments. */ +extern void lang_specific_driver (int *, const char *const **, int *); + +/* Called before linking. Returns 0 on success and -1 on failure. */ +extern int lang_specific_pre_link (void); + +extern int n_infiles; + +/* Number of extra output files that lang_specific_pre_link may generate. */ extern int lang_specific_extra_outfiles; -#endif /* ! __GCC_H__ */ +/* A vector of corresponding output files is made up later. */ + +extern const char **outfiles; + +#endif /* ! GCC_GCC_H */