diff options
author | neil <neil@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-10-17 20:39:13 +0000 |
---|---|---|
committer | neil <neil@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-10-17 20:39:13 +0000 |
commit | 10cac3d7e9a49b61070d5928fafc684ba8bb8b09 (patch) | |
tree | 2dae3af9c755abce804222d661e45bf3de77c4e0 /gcc/config/i370/i370-c.c | |
parent | eaa0fb24f878d75aba28df9ba3c06009c1760963 (diff) | |
download | gcc-10cac3d7e9a49b61070d5928fafc684ba8bb8b09.tar.gz |
* config.gcc: Update c4x and i370 for C front end-specific
dependencies.
* config/c4x/c4x-c.c: New.
* config/c4x/c4x-protos.h (c4x_handle_pragma): Remove.
(code_tree, data_tree, pure_tree, noreturn_tree, interrupt_tree):
New declarations.
* config/c4x/c4x.c: Don't include c-lex.h or c-pragma.h.
(code_tree, data_tree, pure_tree, noreturn_tree, interrupt_tree):
Make extern.
(c4x_init_pragma): Remove.
(c4x_parse_pragma, c4x_pr_CODE_SECTION, c4x_pr_DATA_SECTION,
c4x_pr_FUNC_IS_PURE, c4x_pr_FUNC_NEVER_RETURNS, c4x_pr_INTERRUPT,
c4x_pr_ignored): Move to c4x-c.c.
* config/c4x/c4x.h (REGISTER_TARGET_PRAGMAS): Update.
* config/c4x/t-c4x: Update.
* config/i370/i370-c.c: New.
* config/i370/i370.c: Don't include c-lex.h or c-pragma.h.
(i370_pr_map): Move to i370-c.c.
* config/i370/t-i370: New.
* doc/tm.texi: Update.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@46322 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/i370/i370-c.c')
-rw-r--r-- | gcc/config/i370/i370-c.c | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/gcc/config/i370/i370-c.c b/gcc/config/i370/i370-c.c new file mode 100644 index 00000000000..d1eddb6a971 --- /dev/null +++ b/gcc/config/i370/i370-c.c @@ -0,0 +1,63 @@ +/* Subroutines for the C front end for System/370. + Copyright (C) 1989, 1993, 1995, 1997, 1998, 1999, 2000 + Free Software Foundation, Inc. + Contributed by Jan Stein (jan@cd.chalmers.se). + Modified for OS/390 LanguageEnvironment C by Dave Pitts (dpitts@cozx.com) + Hacked for Linux-ELF/390 by Linas Vepstas (linas@linas.org) + +This file is part of GNU CC. + +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. + +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. + +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. */ + +#include "config.h" +#include "system.h" +#include "tree.h" +#include "toplev.h" +#include "cpplib.h" +#include "c-pragma.h" +#include "c-lex.h" +#include "i370-protos.h" + +#ifdef TARGET_HLASM + +/* #pragma map (name, alias) - + In this implementation both name and alias are required to be + identifiers. The older code seemed to be more permissive. Can + anyone clarify? */ + +void +i370_pr_map (pfile) + cpp_reader *pfile ATTRIBUTE_UNUSED; +{ + tree name, alias, x; + + if (c_lex (&x) == CPP_OPEN_PAREN + && c_lex (&name) == CPP_NAME + && c_lex (&x) == CPP_COMMA + && c_lex (&alias) == CPP_NAME + && c_lex (&x) == CPP_CLOSE_PAREN) + { + if (c_lex (&x) != CPP_EOF) + warning ("junk at end of #pragma map"); + + mvs_add_alias (IDENTIFIER_POINTER (name), IDENTIFIER_POINTER (alias), 1); + return; + } + + warning ("malformed #pragma map, ignored"); +} + +#endif |