https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61620
Bug ID: 61620 Summary: FAIL: go.test/test/fixedbugs/bug242.go execution, -O2 -g Product: gcc Version: 4.10.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: go Assignee: ian at airs dot com Reporter: ubizjak at gmail dot com CC: cmang at google dot com Execute of go.test/test/fixedbugs/bug242.go fails on i686-linux-gnu with "fatal error: freeing too small block". [uros@localhost test]$ LD_LIBRARY_PATH=. gdb ./bug242.x GNU gdb (GDB) Fedora 7.7.1-13.fc20 Copyright (C) 2014 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "x86_64-redhat-linux-gnu". Type "show configuration" for configuration details. For bug reporting instructions, please see: <http://www.gnu.org/software/gdb/bugs/>. Find the GDB manual and other documentation resources online at: <http://www.gnu.org/software/gdb/documentation/>. For help, type "help". Type "apropos word" to search for commands related to "word"... Reading symbols from ./bug242.x...done. (gdb) r Starting program: /home/uros/test/bug242.x [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib64/libthread_db.so.1". [New Thread 0xf756acc0 (LWP 5016)] fatal error: freeing too small block goroutine 16 [running]: runtime_dopanic /home/uros/gcc-svn/trunk/libgo/runtime/panic.c:129 runtime_throw /home/uros/gcc-svn/trunk/libgo/runtime/panic.c:167 __go_free /home/uros/gcc-svn/trunk/libgo/runtime/malloc.goc:366 __go_map_delete /home/uros/gcc-svn/trunk/libgo/runtime/go-map-delete.c:50 runtime.mapdelete /home/uros/gcc-svn/trunk/libgo/runtime/map.goc:47 main.main /home/uros/gcc-svn/trunk/gcc/testsuite/go.test/test/fixedbugs/bug242.go:96 runtime_main /home/uros/gcc-svn/trunk/libgo/runtime/proc.c:571 panic during panic goroutine 16 [running]: runtime_dopanic /home/uros/gcc-svn/trunk/libgo/runtime/panic.c:129 runtime_startpanic /home/uros/gcc-svn/trunk/libgo/runtime/panic.c:98 runtime_throw /home/uros/gcc-svn/trunk/libgo/runtime/panic.c:165 runtime_mallocgc /home/uros/gcc-svn/trunk/libgo/runtime/malloc.goc:115 __go_alloc /home/uros/gcc-svn/trunk/libgo/runtime/malloc.goc:333 callback /home/uros/gcc-svn/trunk/libgo/runtime/go-caller.c:47 dwarf_lookup_pc /home/uros/gcc-svn/trunk/libbacktrace/dwarf.c:2838 dwarf_fileline /home/uros/gcc-svn/trunk/libbacktrace/dwarf.c:2877 backtrace_pcinfo /home/uros/gcc-svn/trunk/libbacktrace/fileline.c:176 __go_file_line /home/uros/gcc-svn/trunk/libgo/runtime/go-caller.c:125 runtime_printcreatedby /home/uros/gcc-svn/trunk/libgo/runtime/proc.c:636 runtime_dopanic /home/uros/gcc-svn/trunk/libgo/runtime/panic.c:130 runtime_throw /home/uros/gcc-svn/trunk/libgo/runtime/panic.c:167 __go_free /home/uros/gcc-svn/trunk/libgo/runtime/malloc.goc:366 __go_map_delete /home/uros/gcc-svn/trunk/libgo/runtime/go-map-delete.c:50 runtime.mapdelete /home/uros/gcc-svn/trunk/libgo/runtime/map.goc:47 main.main /home/uros/gcc-svn/trunk/gcc/testsuite/go.test/test/fixedbugs/bug242.go:96 runtime_main /home/uros/gcc-svn/trunk/libgo/runtime/proc.c:571 stack trace unavailable [Thread 0xf756acc0 (LWP 5016) exited] [Inferior 1 (process 5012) exited with code 04] Breakpoint in runtime_dopanic: Breakpoint 1, runtime_dopanic (unused=0) at /home/uros/gcc-svn/trunk/libgo/runtime/panic.c:114 114 { (gdb) bt #0 runtime_dopanic (unused=0) at /home/uros/gcc-svn/trunk/libgo/runtime/panic.c:114 #1 0xf7978ddf in runtime_throw (s=0xf7c90526 "freeing too small block") at /home/uros/gcc-svn/trunk/libgo/runtime/panic.c:167 #2 0xf7981f7d in __go_free (v=0x18204018) at /home/uros/gcc-svn/trunk/libgo/runtime/malloc.goc:366 #3 0xf796a8a4 in __go_map_delete (map=0x18200000, key=0xf6f1cf39) at /home/uros/gcc-svn/trunk/libgo/runtime/go-map-delete.c:50 #4 0xf7982d35 in runtime.mapdelete (h=0x18200000, key=0xf6f1cf39 "\r") at /home/uros/gcc-svn/trunk/libgo/runtime/map.goc:47 #5 0x08049eb6 in main.main () at /home/uros/gcc-svn/trunk/gcc/testsuite/go.test/test/fixedbugs/bug242.go:96 (gdb) f 2 #2 0xf7981f7d in __go_free (v=0x18204018) at /home/uros/gcc-svn/trunk/libgo/runtime/malloc.goc:366 366 runtime_throw("freeing too small block"); (gdb) list 361 size = s->elemsize; 362 sizeclass = s->sizeclass; 363 // Objects that are smaller than TinySize can be allocated using tiny alloc, 364 // if then such object is combined with an object with finalizer, we will crash. 365 if(size < TinySize) 366 runtime_throw("freeing too small block"); 367 368 if(raceenabled) 369 runtime_racefree(v); 370 (gdb) p size $1 = 8 (gdb) p TinySize $2 = TinySize (gdb)