diff --git a/libgo/go/compress/flate/example_test.go b/libgo/go/compress/flate/example_test.go
index 3d44dde..5780092 100644
--- a/libgo/go/compress/flate/example_test.go
+++ b/libgo/go/compress/flate/example_test.go
@@ -2,8 +2,6 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// +build ignore
-
 package flate_test
 
 import (
diff --git a/libgo/go/compress/gzip/example_test.go b/libgo/go/compress/gzip/example_test.go
index 4764bcb..ce29e9b 100644
--- a/libgo/go/compress/gzip/example_test.go
+++ b/libgo/go/compress/gzip/example_test.go
@@ -2,8 +2,6 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// +build ignore
-
 package gzip_test
 
 import (
diff --git a/libgo/go/container/ring/example_test.go b/libgo/go/container/ring/example_test.go
index d8f1639..30bd0d7 100644
--- a/libgo/go/container/ring/example_test.go
+++ b/libgo/go/container/ring/example_test.go
@@ -2,8 +2,6 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// +build ignore
-
 package ring_test
 
 import (
diff --git a/libgo/go/crypto/sha256/example_test.go b/libgo/go/crypto/sha256/example_test.go
index 89d5c97..7d73120 100644
--- a/libgo/go/crypto/sha256/example_test.go
+++ b/libgo/go/crypto/sha256/example_test.go
@@ -2,8 +2,6 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// +build ignore
-
 package sha256_test
 
 import (
diff --git a/libgo/go/database/sql/example_cli_test.go b/libgo/go/database/sql/example_cli_test.go
index c87c508..8c61d75 100644
--- a/libgo/go/database/sql/example_cli_test.go
+++ b/libgo/go/database/sql/example_cli_test.go
@@ -2,8 +2,6 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// +build ignore
-
 package sql_test
 
 import (
diff --git a/libgo/go/database/sql/example_service_test.go b/libgo/go/database/sql/example_service_test.go
index 7605e2f..768307c 100644
--- a/libgo/go/database/sql/example_service_test.go
+++ b/libgo/go/database/sql/example_service_test.go
@@ -2,8 +2,6 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// +build ignore
-
 package sql_test
 
 import (
diff --git a/libgo/go/encoding/csv/example_test.go b/libgo/go/encoding/csv/example_test.go
index e3c3bd5..dc227d4 100644
--- a/libgo/go/encoding/csv/example_test.go
+++ b/libgo/go/encoding/csv/example_test.go
@@ -2,8 +2,6 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// +build ignore
-
 package csv_test
 
 import (
diff --git a/libgo/go/encoding/hex/example_test.go b/libgo/go/encoding/hex/example_test.go
index fb1554e..3580757 100644
--- a/libgo/go/encoding/hex/example_test.go
+++ b/libgo/go/encoding/hex/example_test.go
@@ -2,8 +2,6 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// +build ignore
-
 package hex_test
 
 import (
diff --git a/libgo/go/encoding/json/example_marshaling_test.go b/libgo/go/encoding/json/example_marshaling_test.go
index 1c4f783..7f15c74 100644
--- a/libgo/go/encoding/json/example_marshaling_test.go
+++ b/libgo/go/encoding/json/example_marshaling_test.go
@@ -2,8 +2,6 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// +build ignore
-
 package json_test
 
 import (
diff --git a/libgo/go/encoding/json/example_text_marshaling_test.go b/libgo/go/encoding/json/example_text_marshaling_test.go
index a8a3f83..04c7813 100644
--- a/libgo/go/encoding/json/example_text_marshaling_test.go
+++ b/libgo/go/encoding/json/example_text_marshaling_test.go
@@ -2,8 +2,6 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// +build ignore
-
 package json_test
 
 import (
diff --git a/libgo/go/encoding/pem/example_test.go b/libgo/go/encoding/pem/example_test.go
index 22081b4..806e7bb 100644
--- a/libgo/go/encoding/pem/example_test.go
+++ b/libgo/go/encoding/pem/example_test.go
@@ -2,8 +2,6 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// +build ignore
-
 package pem_test
 
 import (
diff --git a/libgo/go/encoding/xml/example_marshaling_test.go b/libgo/go/encoding/xml/example_marshaling_test.go
index 04d3470..9f9e801 100644
--- a/libgo/go/encoding/xml/example_marshaling_test.go
+++ b/libgo/go/encoding/xml/example_marshaling_test.go
@@ -2,8 +2,6 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// +build ignore
-
 package xml_test
 
 import (
diff --git a/libgo/go/encoding/xml/example_text_marshaling_test.go b/libgo/go/encoding/xml/example_text_marshaling_test.go
index 8d1f332..2549cb1 100644
--- a/libgo/go/encoding/xml/example_text_marshaling_test.go
+++ b/libgo/go/encoding/xml/example_text_marshaling_test.go
@@ -2,8 +2,6 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// +build ignore
-
 package xml_test
 
 import (
diff --git a/libgo/go/fmt/example_test.go b/libgo/go/fmt/example_test.go
index ae60abe..5962834 100644
--- a/libgo/go/fmt/example_test.go
+++ b/libgo/go/fmt/example_test.go
@@ -2,8 +2,6 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// +build ignore
-
 package fmt_test
 
 import (
diff --git a/libgo/go/fmt/gostringer_example_test.go b/libgo/go/fmt/gostringer_example_test.go
index 7c6b9f0..ab19ee3 100644
--- a/libgo/go/fmt/gostringer_example_test.go
+++ b/libgo/go/fmt/gostringer_example_test.go
@@ -2,8 +2,6 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// +build ignore
-
 package fmt_test
 
 import (
diff --git a/libgo/go/fmt/stringer_example_test.go b/libgo/go/fmt/stringer_example_test.go
index aa3cd05..c77e788 100644
--- a/libgo/go/fmt/stringer_example_test.go
+++ b/libgo/go/fmt/stringer_example_test.go
@@ -2,8 +2,6 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// +build ignore
-
 package fmt_test
 
 import (
diff --git a/libgo/go/go/types/example_test.go b/libgo/go/go/types/example_test.go
index a2e481b..5619d20 100644
--- a/libgo/go/go/types/example_test.go
+++ b/libgo/go/go/types/example_test.go
@@ -5,7 +5,7 @@
 // Only run where builders (build.golang.org) have
 // access to compiled packages for import.
 //
-// +build ignore,!arm,!arm64,!nacl
+// +build !arm,!arm64,!nacl
 
 package types_test
 
@@ -77,7 +77,7 @@
 	rx := regexp.MustCompile(` 0x[a-fA-F0-9]*`)
 	fmt.Println(rx.ReplaceAllString(buf.String(), ""))
 
-	// Output:
+	// no output for gccgo--can't import "fmt"
 	// package "temperature" scope {
 	// .  const temperature.Boiling temperature.Celsius
 	// .  type temperature.Celsius float64
@@ -147,7 +147,7 @@
 		fmt.Println()
 	}
 
-	// Output:
+	// no output for gccgo--can't import "fmt"
 	// Method set of temperature.Celsius:
 	// method (temperature.Celsius) String() string
 	//
diff --git a/libgo/go/hash/crc32/example_test.go b/libgo/go/hash/crc32/example_test.go
index a1d9e16..621bf83 100644
--- a/libgo/go/hash/crc32/example_test.go
+++ b/libgo/go/hash/crc32/example_test.go
@@ -2,8 +2,6 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// +build ignore
-
 package crc32_test
 
 import (
diff --git a/libgo/go/hash/example_test.go b/libgo/go/hash/example_test.go
index 49dc8fc..f07b9aa 100644
--- a/libgo/go/hash/example_test.go
+++ b/libgo/go/hash/example_test.go
@@ -2,8 +2,6 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// +build ignore
-
 package hash_test
 
 import (
diff --git a/libgo/go/html/example_test.go b/libgo/go/html/example_test.go
index d0f0a9b..0e28cac 100644
--- a/libgo/go/html/example_test.go
+++ b/libgo/go/html/example_test.go
@@ -2,8 +2,6 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// +build ignore
-
 package html_test
 
 import (
diff --git a/libgo/go/html/template/example_test.go b/libgo/go/html/template/example_test.go
index 80107a6..533c0dd 100644
--- a/libgo/go/html/template/example_test.go
+++ b/libgo/go/html/template/example_test.go
@@ -2,8 +2,6 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// +build ignore
-
 package template_test
 
 import (
diff --git a/libgo/go/html/template/examplefiles_test.go b/libgo/go/html/template/examplefiles_test.go
index ffca8d5..60518ae 100644
--- a/libgo/go/html/template/examplefiles_test.go
+++ b/libgo/go/html/template/examplefiles_test.go
@@ -2,8 +2,6 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// +build ignore
-
 package template_test
 
 import (
diff --git a/libgo/go/image/draw/example_test.go b/libgo/go/image/draw/example_test.go
index d381c1c..2ccc2f4 100644
--- a/libgo/go/image/draw/example_test.go
+++ b/libgo/go/image/draw/example_test.go
@@ -2,8 +2,6 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// +build ignore
-
 package draw_test
 
 import (
diff --git a/libgo/go/image/png/example_test.go b/libgo/go/image/png/example_test.go
index 2a03be5..c437632 100644
--- a/libgo/go/image/png/example_test.go
+++ b/libgo/go/image/png/example_test.go
@@ -2,8 +2,6 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// +build ignore
-
 package png_test
 
 import (
diff --git a/libgo/go/index/suffixarray/example_test.go b/libgo/go/index/suffixarray/example_test.go
index a23a580..ea10bfd 100644
--- a/libgo/go/index/suffixarray/example_test.go
+++ b/libgo/go/index/suffixarray/example_test.go
@@ -2,8 +2,6 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// +build ignore
-
 package suffixarray_test
 
 import (
diff --git a/libgo/go/io/ioutil/example_test.go b/libgo/go/io/ioutil/example_test.go
index 3066c94..a7d340b 100644
--- a/libgo/go/io/ioutil/example_test.go
+++ b/libgo/go/io/ioutil/example_test.go
@@ -2,8 +2,6 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// +build ignore
-
 package ioutil_test
 
 import (
diff --git a/libgo/go/io/ioutil/testdata/hello b/libgo/go/io/ioutil/testdata/hello
new file mode 100644
index 0000000..e47c092
--- /dev/null
+++ b/libgo/go/io/ioutil/testdata/hello
@@ -0,0 +1 @@
+Hello, Gophers!
diff --git a/libgo/go/log/syslog/example_test.go b/libgo/go/log/syslog/example_test.go
index 0513b26..3d5b76d 100644
--- a/libgo/go/log/syslog/example_test.go
+++ b/libgo/go/log/syslog/example_test.go
@@ -2,7 +2,6 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// +build ignore
 // +build !windows,!nacl,!plan9
 
 package syslog_test
diff --git a/libgo/go/math/big/example_rat_test.go b/libgo/go/math/big/example_rat_test.go
index f3127bb..a971170 100644
--- a/libgo/go/math/big/example_rat_test.go
+++ b/libgo/go/math/big/example_rat_test.go
@@ -2,8 +2,6 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// +build ignore
-
 package big_test
 
 import (
diff --git a/libgo/go/math/big/floatexample_test.go b/libgo/go/math/big/floatexample_test.go
index 8645c44..0c6668c 100644
--- a/libgo/go/math/big/floatexample_test.go
+++ b/libgo/go/math/big/floatexample_test.go
@@ -2,8 +2,6 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// +build ignore
-
 package big_test
 
 import (
diff --git a/libgo/go/math/bits/example_test.go b/libgo/go/math/bits/example_test.go
index 14cea6f..b2ed2cb 100644
--- a/libgo/go/math/bits/example_test.go
+++ b/libgo/go/math/bits/example_test.go
@@ -4,8 +4,6 @@
 
 // Code generated by go run make_examples.go. DO NOT EDIT.
 
-// +build ignore
-
 package bits_test
 
 import (
diff --git a/libgo/go/math/cmplx/example_test.go b/libgo/go/math/cmplx/example_test.go
index be87cff..f0ed963 100644
--- a/libgo/go/math/cmplx/example_test.go
+++ b/libgo/go/math/cmplx/example_test.go
@@ -2,8 +2,6 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// +build ignore
-
 package cmplx_test
 
 import (
diff --git a/libgo/go/mime/example_test.go b/libgo/go/mime/example_test.go
index 12aafdc..c7d13cd 100644
--- a/libgo/go/mime/example_test.go
+++ b/libgo/go/mime/example_test.go
@@ -2,8 +2,6 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// +build ignore
-
 package mime_test
 
 import (
diff --git a/libgo/go/mime/quotedprintable/example_test.go b/libgo/go/mime/quotedprintable/example_test.go
index 0593b04..5a9ab45 100644
--- a/libgo/go/mime/quotedprintable/example_test.go
+++ b/libgo/go/mime/quotedprintable/example_test.go
@@ -2,8 +2,6 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// +build ignore
-
 package quotedprintable_test
 
 import (
diff --git a/libgo/go/net/http/cookiejar/dummy_publicsuffix_test.go b/libgo/go/net/http/cookiejar/dummy_publicsuffix_test.go
index 748ec5c..9b31173 100644
--- a/libgo/go/net/http/cookiejar/dummy_publicsuffix_test.go
+++ b/libgo/go/net/http/cookiejar/dummy_publicsuffix_test.go
@@ -2,8 +2,6 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// +build ignore
-
 package cookiejar_test
 
 import "net/http/cookiejar"
diff --git a/libgo/go/net/http/cookiejar/example_test.go b/libgo/go/net/http/cookiejar/example_test.go
index 19a5746..91728ca 100644
--- a/libgo/go/net/http/cookiejar/example_test.go
+++ b/libgo/go/net/http/cookiejar/example_test.go
@@ -2,8 +2,6 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// +build ignore
-
 package cookiejar_test
 
 import (
diff --git a/libgo/go/net/http/httptrace/example_test.go b/libgo/go/net/http/httptrace/example_test.go
index 27cdcde..07fdc0a 100644
--- a/libgo/go/net/http/httptrace/example_test.go
+++ b/libgo/go/net/http/httptrace/example_test.go
@@ -2,8 +2,6 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// +build ignore
-
 package httptrace_test
 
 import (
diff --git a/libgo/go/net/http/httputil/example_test.go b/libgo/go/net/http/httputil/example_test.go
index e8dc962..6191603 100644
--- a/libgo/go/net/http/httputil/example_test.go
+++ b/libgo/go/net/http/httputil/example_test.go
@@ -2,8 +2,6 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// +build ignore
-
 package httputil_test
 
 import (
diff --git a/libgo/go/net/mail/example_test.go b/libgo/go/net/mail/example_test.go
index 972cfd6..c336564 100644
--- a/libgo/go/net/mail/example_test.go
+++ b/libgo/go/net/mail/example_test.go
@@ -2,8 +2,6 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// +build ignore
-
 package mail_test
 
 import (
diff --git a/libgo/go/path/filepath/example_test.go b/libgo/go/path/filepath/example_test.go
index d019c26..a1d680e 100644
--- a/libgo/go/path/filepath/example_test.go
+++ b/libgo/go/path/filepath/example_test.go
@@ -2,8 +2,6 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// +build ignore
-
 package filepath_test
 
 import (
diff --git a/libgo/go/runtime/trace/example_test.go b/libgo/go/runtime/trace/example_test.go
index 8e0ee5a..ba96a82 100644
--- a/libgo/go/runtime/trace/example_test.go
+++ b/libgo/go/runtime/trace/example_test.go
@@ -2,8 +2,6 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// +build ignore
-
 package trace_test
 
 import (
diff --git a/libgo/go/text/scanner/example_test.go b/libgo/go/text/scanner/example_test.go
index 88b992b..5e8c3fb 100644
--- a/libgo/go/text/scanner/example_test.go
+++ b/libgo/go/text/scanner/example_test.go
@@ -2,8 +2,6 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// +build ignore
-
 package scanner_test
 
 import (
diff --git a/libgo/testsuite/gotest b/libgo/testsuite/gotest
index 4f1a2f8..4293db9 100755
--- a/libgo/testsuite/gotest
+++ b/libgo/testsuite/gotest
@@ -475,7 +475,7 @@
 	cp _gotest_.o `dirname $package`/lib`basename $package`.a
 
 	# Force the test version of the package to be imported first,
-	# so that it's type definitions will be used, in case any new
+	# so that its type definitions will be used, in case any new
 	# methods appear in export_test.go files.
 	echo "package $xpackage" > _first_test.go
 	echo 'import _ "'$package'"' >> _first_test.go
@@ -535,6 +535,28 @@
   done
 }
 
+# Takes an example name and puts any output into the file example.txt.
+# It strips comment markers but does not otherwise change the output.
+exampleoutput() {
+    local n=$(testname $1)
+    local f
+    for f in $gofiles $xgofiles; do
+	if ! grep "^func $n(" $f >/dev/null 2>&1; then
+	    continue
+	fi
+	# Copy the output comment, if any, into example.txt.
+	# Remove the comment markers.
+	sed -n "/^func $n(/,/^}$/ p" $f |
+	    sed -n '\|// \([Uu]nordered \)\?[Oo]utput:|,$ p' |
+	    sed -n '\|//| s|[ 	]*// \?||p' > example.txt
+	# Check whether we found an output comment.
+	if ! sed -n '1p' < example.txt | grep '[Oo]utput:' >/dev/null 2>&1; then
+	    rm -f example.txt
+	fi
+	return
+    done
+}
+
 {
 	# On systems using PPC64 ELF ABI v1 function symbols show up
 	# as descriptors in the data section.
@@ -546,7 +568,12 @@
 	pattern='Test([^a-z].*)?'
 	# The -p option tells GNU nm not to sort.
 	# The -v option tells Solaris nm to sort by value.
-        testsyms=$($NM -p -v _gotest_.o $xofile | egrep " $text .*\."$pattern'$' | fgrep -v ' __go_' | egrep -v '\.\.\w+$' | sed 's/.* //')
+        testsyms=$($NM -p -v _gotest_.o | egrep " $text .*\."$pattern'$' | fgrep -v ' __go_' | egrep -v '\.\.\w+$' | sed 's/.* //')
+	testxsyms=
+	if $havex; then
+	    testxsyms=$($NM -p -v $xofile | egrep " $text .*\."$pattern'$' | fgrep -v ' __go_' | egrep -v '\.\.\w+$' | sed 's/.* //')
+	    testsyms="$testsyms $testxsyms"
+	fi
         tests=$(symtogo "$testsyms")
 	if [ "x$tests" = x ]; then
 		echo 'gotest: warning: no tests matching '$pattern in _gotest_.o $xofile 1>&2
@@ -554,12 +581,20 @@
 	fi
 	# benchmarks are named BenchmarkFoo.
 	pattern='Benchmark([^a-z].*)?'
-	benchmarksyms=$($NM -p -v _gotest_.o $xofile | egrep " $text .*\."$pattern'$' | fgrep -v ' __go_' | egrep -v '\.\.\w+$' | sed 's/.* //')
+	benchmarksyms=$($NM -p -v _gotest_.o | egrep " $text .*\."$pattern'$' | fgrep -v ' __go_' | egrep -v '\.\.\w+$' | sed 's/.* //')
+	if $havex; then
+	    benchmarkxsyms=$($NM -p -v $xofile | egrep " $text .*\."$pattern'$' | fgrep -v ' __go_' | egrep -v '\.\.\w+$' | sed 's/.* //')
+	    benchmarksyms="$benchmarksyms $benchmarkxsyms"
+	fi
         benchmarks=$(symtogo "$benchmarksyms")
 
 	# examples are named ExampleFoo
 	pattern='Example([^a-z].*)?'
-	examplesyms=$($NM -p -v _gotest_.o $xofile | egrep " $text .*\."$pattern'$' | fgrep -v ' __go_' | egrep -v '\.\.\w+$' | sed 's/.* //')
+	examplesyms=$($NM -p -v _gotest_.o | egrep " $text .*\."$pattern'$' | fgrep -v ' __go_' | egrep -v '\.\.\w+$' | sed 's/.* //')
+	if $havex; then
+	    examplexsyms=$($NM -p -v $xofile | egrep " $text .*\."$pattern'$' | fgrep -v ' __go_' | egrep -v '\.\.\w+$' | sed 's/.* //')
+	    examplesyms="$examplesyms $examplexsyms"
+	fi
 	examples=$(symtogo "$examplesyms")
 
 	# package spec
@@ -570,7 +605,25 @@
 		echo 'import "./_gotest_"'
 	fi
 	if $havex; then
+	    needxtest=false
+	    if test -n "$testxsyms" -o -n "$benchmarkxsyms"; then
+		needxtest=true
+	    else
+		# Check whether any example has output.
+		for i in $(symtogo "$examplexsyms"); do
+		    exampleoutput $i
+		    if test -f example.txt; then
+			rm -f example.txt
+			needxtest=true
+			break
+		    fi
+		done
+	    fi
+	    if test x$needxtest = xtrue; then
 		echo 'import "./_xtest_"'
+	    else
+		echo 'import _ "./_xtest_"'
+	    fi
 	fi
 	echo 'import "testing"'
 	echo 'import "testing/internal/testdeps"'
@@ -590,7 +643,7 @@
 	# benchmark array
 	# The comment makes the multiline declaration
 	# gofmt-safe even when there are no benchmarks.
-	echo 'var benchmarks = []testing.InternalBenchmark{ //'
+	echo 'var benchmarks = []testing.InternalBenchmark{'
 	for i in $benchmarks; do
 		n=$(testname $i)
 		j=$(localname $i)
@@ -599,7 +652,7 @@
 	echo '}'
 
 	# examples array
-	echo 'var examples = []testing.InternalExample{ //'
+	echo 'var examples = []testing.InternalExample{'
 	for i in $examples; do
 		n=$(testname $i)
 		j=$(localname $i)
@@ -607,54 +660,37 @@
 		hasoutput=false
 		unordered=false
 		output=
-		for f in $gofiles $xgofiles; do
-		    if ! grep "^func $n(" $f >/dev/null 2>&1; then
-			continue
-		    fi
-		    # Copy the output comment, if any, into example.txt.
-		    # Remove the comment markers.
-		    sed -n "/^func $n(/,/^}$/ p" $f |
-			sed -n '\|// \([Uu]nordered \)\?[Oo]utput:|,$ p' |
-			sed -n '\|//| s|[ 	]*// \?||p' > example.txt
-		    # Check whether we found an output comment.
-		    if ! sed -n '1p' < example.txt | grep '[Oo]utput:' >/dev/null 2>&1; then
-			# An example with no output is only compiled, not run,
-			# so don't add it to the examples slice.
-			rm -f example.txt
-			break
-		    fi
-		    # Check whether the output can be unordered.
-		    unordered=false
-		    if sed -n '1p' < example.txt | grep -i unordered; then
-			unordered=true
-		    fi
-		    # Remove the output header.
-		    # Quote backslashes.
-		    # Quote quotation characters.
-		    # Turn tab into \t.
-		    # Turn pairs of spaces into " \x20", because $() will
-		    # drop duplicate spaces.
-		    # Drop trailing spaces, and turn newlines into \n.
-		    # Remove leading and trailing \n.
-		    sed '1 s/\([Uu]nordered \)\?[Oo]utput:[ 	]*//' < example.txt |
-				 sed -e 's/\\/\\\\/g' \
-				     -e 's/"/\\"/g' \
-				     -e 's/	/\\t/g' \
-				     -e 's/  / \\x20/g' \
-				     -e 's/[ 	]*$/\\n/g' |
-				 tr -d '\n' |
-				 sed -e 's/^\(\\n\)*//' \
-				     -e 's/\(\\n\)*$//' > example2.txt
-		    hasoutput=true
-		    rm -f example.txt
-		    break
-		done
-		if test x$hasoutput = xtrue; then
-		    echo '	{"'$n'", '$j','
-		    sed -e 's/^/		"/' -e 's/$/", /' < example2.txt
-		    echo $unordered'},'
-		    rm -f example2.txt
+		exampleoutput $i
+		if ! test -f example.txt; then
+		    continue
 		fi
+		# Check whether the output can be unordered.
+		unordered=false
+		if sed -n '1p' < example.txt | grep -i unordered >/dev/null 2>&1; then
+		    unordered=true
+		fi
+		# Remove the output header.
+		# Quote backslashes.
+		# Quote quotation characters.
+		# Turn tab into \t.
+		# Turn pairs of spaces into " \x20", because $() will
+		# drop duplicate spaces.
+		# Drop trailing spaces, and turn newlines into \n.
+		# Remove leading and trailing \n.
+		sed '1 s/\([Uu]nordered \)\?[Oo]utput:[ 	]*//' < example.txt |
+			     sed -e 's/\\/\\\\/g' \
+				 -e 's/"/\\"/g' \
+				 -e 's/	/\\t/g' \
+				 -e 's/  / \\x20/g' \
+				 -e 's/[ 	]*$/\\n/g' |
+			     tr -d '\n' |
+			     sed -e 's/^\(\\n\)*//' \
+				 -e 's/\(\\n\)*$//' > example2.txt
+		hasoutput=true
+		echo '	{"'$n'", '$j','
+		sed -e 's/^/		"/' -e 's/$/", /' < example2.txt
+		echo $unordered'},'
+		rm -f example.txt example2.txt
 	done
 	echo '}'
 
