aboutsummaryrefslogtreecommitdiff
path: root/gcc/go/go-gcc.h
diff options
context:
space:
mode:
authorThan McIntosh <thanm@google.com>2016-10-11 00:11:43 +0000
committerIan Lance Taylor <ian@gcc.gnu.org>2016-10-11 00:11:43 +0000
commit3c061ac0525eebec030eee46aab6671023177eea (patch)
tree2cb8646afabaf58b7f77d2990aa7cd375f662850 /gcc/go/go-gcc.h
parentabe08b7d909d27884e9f5f2cb879739e2c909106 (diff)
downloadgcc-3c061ac0525eebec030eee46aab6671023177eea.zip
gcc-3c061ac0525eebec030eee46aab6671023177eea.tar.gz
gcc-3c061ac0525eebec030eee46aab6671023177eea.tar.bz2
compiler: move Backend/Linemap creation out of front end.
Push the calls to create Backend and Linemap object out of the front end into the back end, and instead pass pointers to these objects in the go_create_gogo_args struct. This allows for more flexibility in the interfaces used to create the objects. Reviewed-on: https://go-review.googlesource.com/30698 * go-gcc.h: New file. * go-c.h (struct go_create_gogo_args): Add backend and linemap fields. * go-lang.c: Include "go-gcc.h". (go_langhook_init): Set linemap and backend fields of args. * go-gcc.cc: Include "go-gcc.h". * go-linemap.cc: Include "go-gcc.h". From-SVN: r240959
Diffstat (limited to 'gcc/go/go-gcc.h')
-rw-r--r--gcc/go/go-gcc.h33
1 files changed, 33 insertions, 0 deletions
diff --git a/gcc/go/go-gcc.h b/gcc/go/go-gcc.h
new file mode 100644
index 0000000..0dfd392
--- /dev/null
+++ b/gcc/go/go-gcc.h
@@ -0,0 +1,33 @@
+/* go-gcc.h -- Header file for go backend-specific interfaces.
+ Copyright (C) 2016 Free Software Foundation, Inc.
+
+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 3, 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 COPYING3. If not see
+<http://www.gnu.org/licenses/>. */
+
+#ifndef GO_GO_GCC_BACKEND_H
+#define GO_GO_GCC_BACKEND_H
+
+class Backend;
+
+// Create and return a Backend object for use with the GCC backend.
+
+extern Backend *go_get_backend();
+
+// Create and return a Linemap object for use with the GCC backend.
+
+extern Linemap *go_get_linemap();
+
+#endif // !defined(GO_GCC_BACKEND_H)