This patch from Chris Manghane changes the Go frontend to use the
backend interface to detect whether any errors have been seen.
Bootstrapped and ran Go testsuite on x86_64-unknown-linux-gnu.
Committed to mainline.
Ian
2014-04-30 Chris Manghane <[email protected]>
* go-backend.c: #include "diagnostics.h".
(saw_errors): New function.
* go-c.h (saw_errors): Declare.
* Make-lang.in (GO_OBJS): Remove go/gogo-tree.o.
Index: gcc/go/Make-lang.in
===================================================================
--- gcc/go/Make-lang.in (revision 209392)
+++ gcc/go/Make-lang.in (working copy)
@@ -60,7 +60,6 @@ GO_OBJS = \
go/go-linemap.o \
go/go-optimize.o \
go/go.o \
- go/gogo-tree.o \
go/gogo.o \
go/import.o \
go/import-archive.o \
Index: gcc/go/gofrontend/gogo-tree.cc
===================================================================
--- gcc/go/gofrontend/gogo-tree.cc (revision 209392)
+++ gcc/go/gofrontend/gogo-tree.cc (working copy)
@@ -1,37 +0,0 @@
-// gogo-tree.cc -- convert Go frontend Gogo IR to gcc trees.
-
-// Copyright 2009 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-#include "go-system.h"
-
-#include "toplev.h"
-#include "tree.h"
-#include "stringpool.h"
-#include "stor-layout.h"
-#include "varasm.h"
-#include "gimple-expr.h"
-#include "gimplify.h"
-#include "tree-iterator.h"
-#include "cgraph.h"
-#include "langhooks.h"
-#include "convert.h"
-#include "output.h"
-#include "diagnostic.h"
-#include "go-c.h"
-
-#include "types.h"
-#include "expressions.h"
-#include "statements.h"
-#include "runtime.h"
-#include "backend.h"
-#include "gogo.h"
-
-// Whether we have seen any errors.
-
-bool
-saw_errors()
-{
- return errorcount != 0 || sorrycount != 0;
-}
Index: gcc/go/go-backend.c
===================================================================
--- gcc/go/go-backend.c (revision 209392)
+++ gcc/go/go-backend.c (working copy)
@@ -29,6 +29,7 @@ along with GCC; see the file COPYING3.
#include "output.h" /* for assemble_string */
#include "target.h"
#include "common/common-target.h"
+#include "diagnostic.h"
#include "go-c.h"
@@ -48,6 +49,14 @@ along with GCC; see the file COPYING3.
/* This file holds all the cases where the Go frontend needs
information from gcc's backend. */
+/* Return whether or not GCC has reported any errors. */
+
+bool
+saw_errors (void)
+{
+ return errorcount != 0 || sorrycount != 0;
+}
+
/* Return the alignment in bytes of a struct field of type T. */
unsigned int
Index: gcc/go/go-c.h
===================================================================
--- gcc/go/go-c.h (revision 209945)
+++ gcc/go/go-c.h (working copy)
@@ -46,6 +46,8 @@ extern void go_write_globals (void);
extern void go_preserve_from_gc (tree);
+extern bool saw_errors (void);
+
extern const char *go_localize_identifier (const char*);
extern unsigned int go_field_alignment (tree);