summaryrefslogtreecommitdiff
path: root/gcc/config/i370/i370-c.c
diff options
context:
space:
mode:
authorneil <neil@138bc75d-0d04-0410-961f-82ee72b054a4>2001-10-17 20:39:13 +0000
committerneil <neil@138bc75d-0d04-0410-961f-82ee72b054a4>2001-10-17 20:39:13 +0000
commit10cac3d7e9a49b61070d5928fafc684ba8bb8b09 (patch)
tree2dae3af9c755abce804222d661e45bf3de77c4e0 /gcc/config/i370/i370-c.c
parenteaa0fb24f878d75aba28df9ba3c06009c1760963 (diff)
downloadgcc-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.c63
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