summaryrefslogtreecommitdiff
path: root/gcc/config/i370/i370-c.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/config/i370/i370-c.c')
-rw-r--r--gcc/config/i370/i370-c.c64
1 files changed, 64 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..fe39191cfa2
--- /dev/null
+++ b/gcc/config/i370/i370-c.c
@@ -0,0 +1,64 @@
+/* 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 GCC.
+
+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 2, or (at your option)
+any later version.
+
+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 GCC; 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 "coretypes.h"
+#include "tm.h"
+#include "tree.h"
+#include "toplev.h"
+#include "cpplib.h"
+#include "c-pragma.h"
+#include "tm_p.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