diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 3c708605b6c2b235d970bf912fb22883b3fb319c..3a1e67645e452763113f243ad62e20837547cd90 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2016-09-28  Martin Sebor  <msebor@redhat.com>
+
+	PR bootstrap/77753
+	* varasm.c (assemble_addr_to_section): Increase local buffer size.
+
 2016-09-27  Richard Biener  <rguenther@suse.de>
 
 	* dwarf2out.c (cu_die_list): New global.
diff --git a/gcc/varasm.c b/gcc/varasm.c
index 3972790cc7bdfd72e91c2c59d678e2187c70d5c7..93aba78e4b590f3d96f2f5a05d2a5aec75a681bf 100644
--- a/gcc/varasm.c
+++ b/gcc/varasm.c
@@ -1556,7 +1556,9 @@ assemble_addr_to_section (rtx symbol, section *sec)
 section *
 get_cdtor_priority_section (int priority, bool constructor_p)
 {
-  char buf[16];
+  /* Buffer conservatively large enough for the full range of a 32-bit
+     int plus the text below.  */
+  char buf[18];
 
   /* ??? This only works reliably with the GNU linker.  */
   sprintf (buf, "%s.%.5u",