This was found building config-list.mk last night using the trunk compiler. The buffer can clearly overflow for large label numbers.

Confirmed that the microblaze target builds, and installed.

Jeff
commit 5b9382fcd400c8587667d7125f240ebec4ae2c81
Author: law <law@138bc75d-0d04-0410-961f-82ee72b054a4>
Date:   Tue Jan 24 15:49:32 2017 +0000

        * config/microblaze/microblaze.h (ASM_FORMAT_PRIVATE_NAME): Increase
        buffer size.
    
    git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@244877 
138bc75d-0d04-0410-961f-82ee72b054a4

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index f21bd83..1deec60 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2017-01-24 Jeff Law  <l...@redhat.com>
+
+       * config/microblaze/microblaze.h (ASM_FORMAT_PRIVATE_NAME): Increase
+       buffer size.
+
 2017-01-24  Bin Cheng  <bin.ch...@arm.com>
 
        PR tree-optimization/79159
diff --git a/gcc/config/microblaze/microblaze.h 
b/gcc/config/microblaze/microblaze.h
index 8fdadbf..66e4ef5 100644
--- a/gcc/config/microblaze/microblaze.h
+++ b/gcc/config/microblaze/microblaze.h
@@ -757,7 +757,7 @@ do {                                                        
                \
    an assembler-name for a local static variable named NAME.
    LABELNO is an integer which is different for each call.  */
 #define ASM_FORMAT_PRIVATE_NAME(OUTPUT, NAME, LABELNO)                 \
-( (OUTPUT) = (char *) alloca (strlen ((NAME)) + 10),                   \
+( (OUTPUT) = (char *) alloca (strlen ((NAME)) + 13),                   \
   sprintf ((OUTPUT), "%s.%lu", (NAME), (unsigned long)(LABELNO)))
 
 /* How to start an assembler comment.

Reply via email to