[llvm-commits] [llvm] r104689 - in /llvm/trunk: include/llvm/MC/MCAssembler.h lib/MC/MCAssembler.cpp

Benjamin Kramer benny.kra at googlemail.com
Thu May 27 07:21:40 PDT 2010


On 26.05.2010, at 08:50, Daniel Dunbar wrote:

> Author: ddunbar
> Date: Wed May 26 01:50:57 2010
> New Revision: 104689
> 
> URL: http://llvm.org/viewvc/llvm-project?rev=104689&view=rev
> Log:
> MC: Eliminate MCFragment vtable, which was unnecessary.
> 
> Modified:
>    llvm/trunk/include/llvm/MC/MCAssembler.h
>    llvm/trunk/lib/MC/MCAssembler.cpp
> 
> Modified: llvm/trunk/include/llvm/MC/MCAssembler.h
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/MC/MCAssembler.h?rev=104689&r1=104688&r2=104689&view=diff
> ==============================================================================
> --- llvm/trunk/include/llvm/MC/MCAssembler.h (original)
> +++ llvm/trunk/include/llvm/MC/MCAssembler.h Wed May 26 01:50:57 2010
> @@ -108,7 +108,6 @@
> public:
>   // Only for sentinel.
>   MCFragment();
> -  virtual ~MCFragment();

Now MCFragment subclasses that contain a vector (or other members which must be destroyed) leak memory.

==16947== 128 bytes in 1 blocks are definitely lost in loss record 131 of 134
==16947==    at 0x4C229C7: operator new(unsigned long) (vg_replace_malloc.c:220)
==16947==    by 0xD129CC: llvm::SmallVectorBase::grow_pod(unsigned long, unsigned long) (SmallVector.cpp:24)
==16947==    by 0x62B3B7: llvm::SmallVectorTemplateBase<char, true>::grow(unsigned long) (SmallVector.h:259)
==16947==    by 0x6B22B6: void llvm::SmallVectorImpl<char>::append<char*>(char*, char*) (SmallVector.h:355)
==16947==    by 0xBDA03D: (anonymous namespace)::MCMachOStreamer::EmitInstToData(llvm::MCInst const&) (MCMachOStreamer.cpp:455)
==16947==    by 0xBDA168: (anonymous namespace)::MCMachOStreamer::EmitInstruction(llvm::MCInst const&) (MCMachOStreamer.cpp:468)
==16947==    by 0x93B363: llvm::AsmParser::ParseStatement() (AsmParser.cpp:814)
==16947==    by 0x9373EE: llvm::AsmParser::Run(bool, bool) (AsmParser.cpp:121)
==16947==    by 0x40B9F5: AssembleInput(char const*) (llvm-mc.cpp:325)
==16947==    by 0x40BD39: main (llvm-mc.cpp:383)
==16947== 
==16947== 256 bytes in 1 blocks are definitely lost in loss record 133 of 134
==16947==    at 0x4C229C7: operator new(unsigned long) (vg_replace_malloc.c:220)
==16947==    by 0xBDCE2C: __gnu_cxx::new_allocator<llvm::MCFixup>::allocate(unsigned long, void const*) (new_allocator.h:89)
==16947==    by 0xBDC586: std::_Vector_base<llvm::MCFixup, std::allocator<llvm::MCFixup> >::_M_allocate(unsigned long) (stl_vector.h:140)
==16947==    by 0xBDB850: std::vector<llvm::MCFixup, std::allocator<llvm::MCFixup> >::_M_insert_aux(__gnu_cxx::__normal_iterator<llvm::MCFixup*, std::vector<llvm::MCFixup, std::allocator<llvm::MCFixup> > >, llvm::MCFixup const&) (vector.tcc:322)
==16947==    by 0xBDABBB: std::vector<llvm::MCFixup, std::allocator<llvm::MCFixup> >::push_back(llvm::MCFixup const&) (stl_vector.h:741)
==16947==    by 0xBDA4AE: llvm::MCDataFragment::addFixup(llvm::MCFixup) (MCAssembler.h:134)
==16947==    by 0xBD9FEA: (anonymous namespace)::MCMachOStreamer::EmitInstToData(llvm::MCInst const&) (MCMachOStreamer.cpp:453)
==16947==    by 0xBDA168: (anonymous namespace)::MCMachOStreamer::EmitInstruction(llvm::MCInst const&) (MCMachOStreamer.cpp:468)
==16947==    by 0x93B363: llvm::AsmParser::ParseStatement() (AsmParser.cpp:814)
==16947==    by 0x9373EE: llvm::AsmParser::Run(bool, bool) (AsmParser.cpp:121)
==16947==    by 0x40B9F5: AssembleInput(char const*) (llvm-mc.cpp:325)
==16947==    by 0x40BD39: main (llvm-mc.cpp:383)



More information about the llvm-commits mailing list