[LLVMbugs] [Bug 2491] New: valgrind errors in FixBaseClassFields()

bugzilla-daemon at cs.uiuc.edu bugzilla-daemon at cs.uiuc.edu
Wed Jun 25 02:28:52 PDT 2008


http://llvm.org/bugs/show_bug.cgi?id=2491

           Summary: valgrind errors in FixBaseClassFields()
           Product: tools
           Version: 2.2
          Platform: PC
        OS/Version: Windows XP
            Status: NEW
          Severity: normal
          Priority: P2
         Component: llvm-g++
        AssignedTo: unassignedbugs at nondot.org
        ReportedBy: jay.foad at antixlabs.com
                CC: llvmbugs at cs.uiuc.edu


Created an attachment (id=1773)
 --> (http://llvm.org/bugs/attachment.cgi?id=1773)
valgrind log

On a particular C++ source file, I'm seeing a bunch of valgrind errors like
this (full log attached):

$ valgrind
~/llvm/llvm-gcc4.2-2.2-x86-linux-RHEL4/libexec/gcc/i686-pc-linux-gnu/4.2.1/cc1plus
-quiet -emit-llvm-bc -o foo.o foo.ii
...
==23065== Invalid read of size 4
==23065==    at 0x837D82D: FixBaseClassFields(tree_node*) (DenseMap.h:38)
==23065==    by 0x838205E: TypeConverter::ConvertRECORD(tree_node*, tree_node*)
(llvm-types.cpp:1990)
==23065==    by 0x8380ACF: TypeConverter::ConvertType(tree_node*)
(llvm-types.cpp:718)
==23065==    by 0x8380AA5: TypeConverter::ConvertType(tree_node*)
(llvm-types.cpp:920)
==23065==    by 0x83815E6: TypeConverter::DecodeStructFields(tree_node*,
StructTypeConversionInfo&) (llvm-types.cpp:1802)
==23065==    by 0x838207A: TypeConverter::ConvertRECORD(tree_node*, tree_node*)
(llvm-types.cpp:1994)
==23065==    by 0x8380ACF: TypeConverter::ConvertType(tree_node*)
(llvm-types.cpp:718)
==23065==    by 0x8380949: TypeConverter::ConvertType(tree_node*)
(llvm-types.cpp:828)
==23065==    by 0x8382287: TypeConverter::ConvertRECORD(tree_node*, tree_node*)
(llvm-types.cpp:2100)
==23065==    by 0x8380ACF: TypeConverter::ConvertType(tree_node*)
(llvm-types.cpp:718)
==23065==    by 0x8380C4F: TypeConverter::ConvertType(tree_node*)
(llvm-types.cpp:866)
==23065==    by 0x8383476: TypeConverter::ConvertFunctionType(tree_node*,
tree_node*, tree_node*, unsigned&, llvm::ParamAttrsList const*&)
(Casting.h:115)
==23065==  Address 0x42BF49C is 236 bytes inside a block of size 512 free'd
==23065==    at 0x401C93E: operator delete[](void*) (vg_replace_malloc.c:256)
==23065==    by 0x837D81A: FixBaseClassFields(tree_node*) (DenseMap.h:360)
==23065==    by 0x838205E: TypeConverter::ConvertRECORD(tree_node*, tree_node*)
(llvm-types.cpp:1990)
==23065==    by 0x8380ACF: TypeConverter::ConvertType(tree_node*)
(llvm-types.cpp:718)
==23065==    by 0x8380AA5: TypeConverter::ConvertType(tree_node*)
(llvm-types.cpp:920)
==23065==    by 0x83815E6: TypeConverter::DecodeStructFields(tree_node*,
StructTypeConversionInfo&) (llvm-types.cpp:1802)
==23065==    by 0x838207A: TypeConverter::ConvertRECORD(tree_node*, tree_node*)
(llvm-types.cpp:1994)
==23065==    by 0x8380ACF: TypeConverter::ConvertType(tree_node*)
(llvm-types.cpp:718)
==23065==    by 0x8380949: TypeConverter::ConvertType(tree_node*)
(llvm-types.cpp:828)
==23065==    by 0x8382287: TypeConverter::ConvertRECORD(tree_node*, tree_node*)
(llvm-types.cpp:2100)
==23065==    by 0x8380ACF: TypeConverter::ConvertType(tree_node*)
(llvm-types.cpp:718)
==23065==    by 0x8380C4F: TypeConverter::ConvertType(tree_node*)
(llvm-types.cpp:866)

The problem seems to have gone away in LLVM 2.3. But I thought I'd raise this
bug anyway in case the problem has just moved, not gone away completely. Or can
anyone assure me that the problem has really been fixed?

Unfortunately I can't attach my source file as-is because it contains
proprietary code. I can have a go at reducing it if that would be useful.


-- 
Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.



More information about the llvm-bugs mailing list