Skip to content

Tons of uninitialized memory access bugs #199

Description

@clbr

I was getting corrupted output randomly, and decided to run armips under valgrind. It blew up in over 20 places:

==2141== Memcheck, a memory error detector
==2141== Copyright (C) 2002-2012, and GNU GPL'd, by Julian Seward et al.
==2141== Using Valgrind-3.8.1 and LibVEX; rerun with -h for copyright info
==2141== Command: armips -root rspasm -sym getbitmap.sym getbitmap.s
==2141== Parent PID: 2064
==2141== 
==2141== Conditional jump or move depends on uninitialised value(s)
==2141==    at 0x446B21: CAssemblerLabel::Validate(ValidateState const&) (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x454933: CommandSequence::Validate(ValidateState const&) (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x42E852: MipsMacroCommand::Validate(ValidateState const&) (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x454933: CommandSequence::Validate(ValidateState const&) (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x449A55: CDirectiveArea::Validate(ValidateState const&) (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x454933: CommandSequence::Validate(ValidateState const&) (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x462D13: encodeAssembly(std::unique_ptr<CAssemblerCommand, std::default_delete<CAssemblerCommand> >, SymbolData&, TempData&) (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x46387E: runArmips(ArmipsArguments&) (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x4C3767: runFromCommandLine(std::vector<std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >, std::allocator<std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > > > const&, ArmipsArguments) (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x4C4E8F: wmain(int, wchar_t**) (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x415FAA: main (in /tiedostot/mv/c/armips/armips)
==2141== 
==2141== Conditional jump or move depends on uninitialised value(s)
==2141==    at 0x446B21: CAssemblerLabel::Validate(ValidateState const&) (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x454933: CommandSequence::Validate(ValidateState const&) (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x449A55: CDirectiveArea::Validate(ValidateState const&) (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x454933: CommandSequence::Validate(ValidateState const&) (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x462D13: encodeAssembly(std::unique_ptr<CAssemblerCommand, std::default_delete<CAssemblerCommand> >, SymbolData&, TempData&) (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x46387E: runArmips(ArmipsArguments&) (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x4C3767: runFromCommandLine(std::vector<std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >, std::allocator<std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > > > const&, ArmipsArguments) (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x4C4E8F: wmain(int, wchar_t**) (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x415FAA: main (in /tiedostot/mv/c/armips/armips)
==2141== 
==2141== Conditional jump or move depends on uninitialised value(s)
==2141==    at 0x446B21: CAssemblerLabel::Validate(ValidateState const&) (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x454933: CommandSequence::Validate(ValidateState const&) (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x454933: CommandSequence::Validate(ValidateState const&) (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x449A55: CDirectiveArea::Validate(ValidateState const&) (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x454933: CommandSequence::Validate(ValidateState const&) (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x462D13: encodeAssembly(std::unique_ptr<CAssemblerCommand, std::default_delete<CAssemblerCommand> >, SymbolData&, TempData&) (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x46387E: runArmips(ArmipsArguments&) (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x4C3767: runFromCommandLine(std::vector<std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >, std::allocator<std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > > > const&, ArmipsArguments) (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x4C4E8F: wmain(int, wchar_t**) (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x415FAA: main (in /tiedostot/mv/c/armips/armips)
==2141== 
==2141== Conditional jump or move depends on uninitialised value(s)
==2141==    at 0x44AE93: CDirectiveConditional::Validate(ValidateState const&) (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x454933: CommandSequence::Validate(ValidateState const&) (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x42E852: MipsMacroCommand::Validate(ValidateState const&) (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x454933: CommandSequence::Validate(ValidateState const&) (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x449A55: CDirectiveArea::Validate(ValidateState const&) (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x454933: CommandSequence::Validate(ValidateState const&) (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x462D13: encodeAssembly(std::unique_ptr<CAssemblerCommand, std::default_delete<CAssemblerCommand> >, SymbolData&, TempData&) (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x46387E: runArmips(ArmipsArguments&) (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x4C3767: runFromCommandLine(std::vector<std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >, std::allocator<std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > > > const&, ArmipsArguments) (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x4C4E8F: wmain(int, wchar_t**) (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x415FAA: main (in /tiedostot/mv/c/armips/armips)
==2141== 
==2141== Conditional jump or move depends on uninitialised value(s)
==2141==    at 0x466F82: ExpressionValue::operator||(ExpressionValue const&) const (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x46B36E: ExpressionInternal::evaluate() (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x44ADC9: CDirectiveConditional::Validate(ValidateState const&) (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x44AE5E: CDirectiveConditional::Validate(ValidateState const&) (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x454933: CommandSequence::Validate(ValidateState const&) (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x42E852: MipsMacroCommand::Validate(ValidateState const&) (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x454933: CommandSequence::Validate(ValidateState const&) (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x449A55: CDirectiveArea::Validate(ValidateState const&) (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x454933: CommandSequence::Validate(ValidateState const&) (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x462D13: encodeAssembly(std::unique_ptr<CAssemblerCommand, std::default_delete<CAssemblerCommand> >, SymbolData&, TempData&) (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x46387E: runArmips(ArmipsArguments&) (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x4C3767: runFromCommandLine(std::vector<std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >, std::allocator<std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > > > const&, ArmipsArguments) (in /tiedostot/mv/c/armips/armips)
==2141== 
==2141== Conditional jump or move depends on uninitialised value(s)
==2141==    at 0x4271B8: CMipsInstruction::Validate(ValidateState const&) (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x454933: CommandSequence::Validate(ValidateState const&) (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x454933: CommandSequence::Validate(ValidateState const&) (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x44AE5E: CDirectiveConditional::Validate(ValidateState const&) (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x44AE5E: CDirectiveConditional::Validate(ValidateState const&) (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x454933: CommandSequence::Validate(ValidateState const&) (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x42E852: MipsMacroCommand::Validate(ValidateState const&) (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x454933: CommandSequence::Validate(ValidateState const&) (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x449A55: CDirectiveArea::Validate(ValidateState const&) (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x454933: CommandSequence::Validate(ValidateState const&) (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x462D13: encodeAssembly(std::unique_ptr<CAssemblerCommand, std::default_delete<CAssemblerCommand> >, SymbolData&, TempData&) (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x46387E: runArmips(ArmipsArguments&) (in /tiedostot/mv/c/armips/armips)
==2141== 
==2141== Conditional jump or move depends on uninitialised value(s)
==2141==    at 0x462D43: encodeAssembly(std::unique_ptr<CAssemblerCommand, std::default_delete<CAssemblerCommand> >, SymbolData&, TempData&) (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x46387E: runArmips(ArmipsArguments&) (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x4C3767: runFromCommandLine(std::vector<std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >, std::allocator<std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > > > const&, ArmipsArguments) (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x4C4E8F: wmain(int, wchar_t**) (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x415FAA: main (in /tiedostot/mv/c/armips/armips)
==2141== 
==2141== Thread 3:
==2141== Conditional jump or move depends on uninitialised value(s)
==2141==    at 0x447529: CAssemblerLabel::writeSymData(SymbolData&) const (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x4548E7: CommandSequence::writeSymData(SymbolData&) const (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x447E9D: CDirectiveArea::writeSymData(SymbolData&) const (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x4548E7: CommandSequence::writeSymData(SymbolData&) const (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x462234: _ZNSt6thread11_State_implINS_8_InvokerISt5tupleIJZ14encodeAssemblySt10unique_ptrI17CAssemblerCommandSt14default_deleteIS4_EER10SymbolDataR8TempDataEUlvE0_EEEEE6_M_runEv (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x4F09AA6: ??? (in /tiedostot/mv/gcc102/lib64/libstdc++.so.6.0.28)
==2141==    by 0x56B6FEA: start_thread (in /lib/libpthread-2.7.so)
==2141==    by 0x598F94C: clone (in /lib/libc-2.7.so)
==2141== 
==2141== Conditional jump or move depends on uninitialised value(s)
==2141==    at 0x494D65: SymbolData::addLabel(long, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > const&) (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x4476A0: CAssemblerLabel::writeSymData(SymbolData&) const (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x4548E7: CommandSequence::writeSymData(SymbolData&) const (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x447E9D: CDirectiveArea::writeSymData(SymbolData&) const (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x4548E7: CommandSequence::writeSymData(SymbolData&) const (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x462234: _ZNSt6thread11_State_implINS_8_InvokerISt5tupleIJZ14encodeAssemblySt10unique_ptrI17CAssemblerCommandSt14default_deleteIS4_EER10SymbolDataR8TempDataEUlvE0_EEEEE6_M_runEv (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x4F09AA6: ??? (in /tiedostot/mv/gcc102/lib64/libstdc++.so.6.0.28)
==2141==    by 0x56B6FEA: start_thread (in /lib/libpthread-2.7.so)
==2141==    by 0x598F94C: clone (in /lib/libc-2.7.so)
==2141== 
==2141== Conditional jump or move depends on uninitialised value(s)
==2141==    at 0x49057E: void std::__introsort_loop<__gnu_cxx::__normal_iterator<NocashSymEntry*, std::vector<NocashSymEntry, std::allocator<NocashSymEntry> > >, long, __gnu_cxx::__ops::_Iter_less_iter>(__gnu_cxx::__normal_iterator<NocashSymEntry*, std::vector<NocashSymEntry, std::allocator<NocashSymEntry> > >, __gnu_cxx::__normal_iterator<NocashSymEntry*, std::vector<NocashSymEntry, std::allocator<NocashSymEntry> > >, long, __gnu_cxx::__ops::_Iter_less_iter) [clone .isra.0] (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x492A48: SymbolData::writeNocashSym() (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x4F09AA6: ??? (in /tiedostot/mv/gcc102/lib64/libstdc++.so.6.0.28)
==2141==    by 0x56B6FEA: start_thread (in /lib/libpthread-2.7.so)
==2141==    by 0x598F94C: clone (in /lib/libc-2.7.so)
==2141== 
==2141== Conditional jump or move depends on uninitialised value(s)
==2141==    at 0x49058D: void std::__introsort_loop<__gnu_cxx::__normal_iterator<NocashSymEntry*, std::vector<NocashSymEntry, std::allocator<NocashSymEntry> > >, long, __gnu_cxx::__ops::_Iter_less_iter>(__gnu_cxx::__normal_iterator<NocashSymEntry*, std::vector<NocashSymEntry, std::allocator<NocashSymEntry> > >, __gnu_cxx::__normal_iterator<NocashSymEntry*, std::vector<NocashSymEntry, std::allocator<NocashSymEntry> > >, long, __gnu_cxx::__ops::_Iter_less_iter) [clone .isra.0] (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x492A48: SymbolData::writeNocashSym() (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x4F09AA6: ??? (in /tiedostot/mv/gcc102/lib64/libstdc++.so.6.0.28)
==2141==    by 0x56B6FEA: start_thread (in /lib/libpthread-2.7.so)
==2141==    by 0x598F94C: clone (in /lib/libc-2.7.so)
==2141== 
==2141== Conditional jump or move depends on uninitialised value(s)
==2141==    at 0x4909C3: void std::__introsort_loop<__gnu_cxx::__normal_iterator<NocashSymEntry*, std::vector<NocashSymEntry, std::allocator<NocashSymEntry> > >, long, __gnu_cxx::__ops::_Iter_less_iter>(__gnu_cxx::__normal_iterator<NocashSymEntry*, std::vector<NocashSymEntry, std::allocator<NocashSymEntry> > >, __gnu_cxx::__normal_iterator<NocashSymEntry*, std::vector<NocashSymEntry, std::allocator<NocashSymEntry> > >, long, __gnu_cxx::__ops::_Iter_less_iter) [clone .isra.0] (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x492A48: SymbolData::writeNocashSym() (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x4F09AA6: ??? (in /tiedostot/mv/gcc102/lib64/libstdc++.so.6.0.28)
==2141==    by 0x56B6FEA: start_thread (in /lib/libpthread-2.7.so)
==2141==    by 0x598F94C: clone (in /lib/libc-2.7.so)
==2141== 
==2141== Conditional jump or move depends on uninitialised value(s)
==2141==    at 0x4909A8: void std::__introsort_loop<__gnu_cxx::__normal_iterator<NocashSymEntry*, std::vector<NocashSymEntry, std::allocator<NocashSymEntry> > >, long, __gnu_cxx::__ops::_Iter_less_iter>(__gnu_cxx::__normal_iterator<NocashSymEntry*, std::vector<NocashSymEntry, std::allocator<NocashSymEntry> > >, __gnu_cxx::__normal_iterator<NocashSymEntry*, std::vector<NocashSymEntry, std::allocator<NocashSymEntry> > >, long, __gnu_cxx::__ops::_Iter_less_iter) [clone .isra.0] (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x492A48: SymbolData::writeNocashSym() (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x4F09AA6: ??? (in /tiedostot/mv/gcc102/lib64/libstdc++.so.6.0.28)
==2141==    by 0x56B6FEA: start_thread (in /lib/libpthread-2.7.so)
==2141==    by 0x598F94C: clone (in /lib/libc-2.7.so)
==2141== 
==2141== Conditional jump or move depends on uninitialised value(s)
==2141==    at 0x490A0D: void std::__introsort_loop<__gnu_cxx::__normal_iterator<NocashSymEntry*, std::vector<NocashSymEntry, std::allocator<NocashSymEntry> > >, long, __gnu_cxx::__ops::_Iter_less_iter>(__gnu_cxx::__normal_iterator<NocashSymEntry*, std::vector<NocashSymEntry, std::allocator<NocashSymEntry> > >, __gnu_cxx::__normal_iterator<NocashSymEntry*, std::vector<NocashSymEntry, std::allocator<NocashSymEntry> > >, long, __gnu_cxx::__ops::_Iter_less_iter) [clone .isra.0] (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x492A48: SymbolData::writeNocashSym() (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x4F09AA6: ??? (in /tiedostot/mv/gcc102/lib64/libstdc++.so.6.0.28)
==2141==    by 0x56B6FEA: start_thread (in /lib/libpthread-2.7.so)
==2141==    by 0x598F94C: clone (in /lib/libc-2.7.so)
==2141== 
==2141== Conditional jump or move depends on uninitialised value(s)
==2141==    at 0x490A1C: void std::__introsort_loop<__gnu_cxx::__normal_iterator<NocashSymEntry*, std::vector<NocashSymEntry, std::allocator<NocashSymEntry> > >, long, __gnu_cxx::__ops::_Iter_less_iter>(__gnu_cxx::__normal_iterator<NocashSymEntry*, std::vector<NocashSymEntry, std::allocator<NocashSymEntry> > >, __gnu_cxx::__normal_iterator<NocashSymEntry*, std::vector<NocashSymEntry, std::allocator<NocashSymEntry> > >, long, __gnu_cxx::__ops::_Iter_less_iter) [clone .isra.0] (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x492A48: SymbolData::writeNocashSym() (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x4F09AA6: ??? (in /tiedostot/mv/gcc102/lib64/libstdc++.so.6.0.28)
==2141==    by 0x56B6FEA: start_thread (in /lib/libpthread-2.7.so)
==2141==    by 0x598F94C: clone (in /lib/libc-2.7.so)
==2141== 
==2141== Conditional jump or move depends on uninitialised value(s)
==2141==    at 0x48FA9A: void std::__insertion_sort<__gnu_cxx::__normal_iterator<NocashSymEntry*, std::vector<NocashSymEntry, std::allocator<NocashSymEntry> > >, __gnu_cxx::__ops::_Iter_less_iter>(__gnu_cxx::__normal_iterator<NocashSymEntry*, std::vector<NocashSymEntry, std::allocator<NocashSymEntry> > >, __gnu_cxx::__normal_iterator<NocashSymEntry*, std::vector<NocashSymEntry, std::allocator<NocashSymEntry> > >, __gnu_cxx::__ops::_Iter_less_iter) [clone .isra.0] (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x492A68: SymbolData::writeNocashSym() (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x4F09AA6: ??? (in /tiedostot/mv/gcc102/lib64/libstdc++.so.6.0.28)
==2141==    by 0x56B6FEA: start_thread (in /lib/libpthread-2.7.so)
==2141==    by 0x598F94C: clone (in /lib/libc-2.7.so)
==2141== 
==2141== Conditional jump or move depends on uninitialised value(s)
==2141==    at 0x48F838: void std::__unguarded_linear_insert<__gnu_cxx::__normal_iterator<NocashSymEntry*, std::vector<NocashSymEntry, std::allocator<NocashSymEntry> > >, __gnu_cxx::__ops::_Val_less_iter>(__gnu_cxx::__normal_iterator<NocashSymEntry*, std::vector<NocashSymEntry, std::allocator<NocashSymEntry> > >, __gnu_cxx::__ops::_Val_less_iter) [clone .isra.0] (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x48FD2E: void std::__insertion_sort<__gnu_cxx::__normal_iterator<NocashSymEntry*, std::vector<NocashSymEntry, std::allocator<NocashSymEntry> > >, __gnu_cxx::__ops::_Iter_less_iter>(__gnu_cxx::__normal_iterator<NocashSymEntry*, std::vector<NocashSymEntry, std::allocator<NocashSymEntry> > >, __gnu_cxx::__normal_iterator<NocashSymEntry*, std::vector<NocashSymEntry, std::allocator<NocashSymEntry> > >, __gnu_cxx::__ops::_Iter_less_iter) [clone .isra.0] (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x492A68: SymbolData::writeNocashSym() (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x4F09AA6: ??? (in /tiedostot/mv/gcc102/lib64/libstdc++.so.6.0.28)
==2141==    by 0x56B6FEA: start_thread (in /lib/libpthread-2.7.so)
==2141==    by 0x598F94C: clone (in /lib/libc-2.7.so)
==2141== 
==2141== Conditional jump or move depends on uninitialised value(s)
==2141==    at 0x48F7D8: void std::__unguarded_linear_insert<__gnu_cxx::__normal_iterator<NocashSymEntry*, std::vector<NocashSymEntry, std::allocator<NocashSymEntry> > >, __gnu_cxx::__ops::_Val_less_iter>(__gnu_cxx::__normal_iterator<NocashSymEntry*, std::vector<NocashSymEntry, std::allocator<NocashSymEntry> > >, __gnu_cxx::__ops::_Val_less_iter) [clone .isra.0] (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x48FD2E: void std::__insertion_sort<__gnu_cxx::__normal_iterator<NocashSymEntry*, std::vector<NocashSymEntry, std::allocator<NocashSymEntry> > >, __gnu_cxx::__ops::_Iter_less_iter>(__gnu_cxx::__normal_iterator<NocashSymEntry*, std::vector<NocashSymEntry, std::allocator<NocashSymEntry> > >, __gnu_cxx::__normal_iterator<NocashSymEntry*, std::vector<NocashSymEntry, std::allocator<NocashSymEntry> > >, __gnu_cxx::__ops::_Iter_less_iter) [clone .isra.0] (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x492A68: SymbolData::writeNocashSym() (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x4F09AA6: ??? (in /tiedostot/mv/gcc102/lib64/libstdc++.so.6.0.28)
==2141==    by 0x56B6FEA: start_thread (in /lib/libpthread-2.7.so)
==2141==    by 0x598F94C: clone (in /lib/libc-2.7.so)
==2141== 
==2141== Thread 1:
==2141== Conditional jump or move depends on uninitialised value(s)
==2141==    at 0x44ACD4: CDirectiveConditional::Encode() const (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x4548A4: CommandSequence::Encode() const (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x4548A4: CommandSequence::Encode() const (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x447D73: CDirectiveArea::Encode() const (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x4548A4: CommandSequence::Encode() const (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x462E19: encodeAssembly(std::unique_ptr<CAssemblerCommand, std::default_delete<CAssemblerCommand> >, SymbolData&, TempData&) (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x46387E: runArmips(ArmipsArguments&) (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x4C3767: runFromCommandLine(std::vector<std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >, std::allocator<std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > > > const&, ArmipsArguments) (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x4C4E8F: wmain(int, wchar_t**) (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x415FAA: main (in /tiedostot/mv/c/armips/armips)
==2141== 
==2141== Syscall param write(buf) points to uninitialised byte(s)
==2141==    at 0x56BDF6B: ??? (in /lib/libpthread-2.7.so)
==2141==    by 0x4EFB9F5: std::__basic_file<char>::xsputn(char const*, long) (in /tiedostot/mv/gcc102/lib64/libstdc++.so.6.0.28)
==2141==    by 0x4F41BC0: std::basic_filebuf<char, std::char_traits<char> >::_M_convert_to_external(char*, long) (in /tiedostot/mv/gcc102/lib64/libstdc++.so.6.0.28)
==2141==    by 0x4F41FD2: std::basic_filebuf<char, std::char_traits<char> >::overflow(int) (in /tiedostot/mv/gcc102/lib64/libstdc++.so.6.0.28)
==2141==    by 0x4F41D22: std::basic_filebuf<char, std::char_traits<char> >::_M_terminate_output() (in /tiedostot/mv/gcc102/lib64/libstdc++.so.6.0.28)
==2141==    by 0x4F45196: std::basic_filebuf<char, std::char_traits<char> >::close() (in /tiedostot/mv/gcc102/lib64/libstdc++.so.6.0.28)
==2141==    by 0x489D8B: FileManager::closeFile() (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x4548A4: CommandSequence::Encode() const (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x462E19: encodeAssembly(std::unique_ptr<CAssemblerCommand, std::default_delete<CAssemblerCommand> >, SymbolData&, TempData&) (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x46387E: runArmips(ArmipsArguments&) (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x4C3767: runFromCommandLine(std::vector<std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >, std::allocator<std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > > > const&, ArmipsArguments) (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x4C4E8F: wmain(int, wchar_t**) (in /tiedostot/mv/c/armips/armips)
==2141==  Address 0x5f2cfae is 14 bytes inside a block of size 8,192 alloc'd
==2141==    at 0x4C23414: operator new[](unsigned long) (in /opt/valgrind/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==2141==    by 0x4F41A73: std::basic_filebuf<char, std::char_traits<char> >::_M_allocate_internal_buffer() (in /tiedostot/mv/gcc102/lib64/libstdc++.so.6.0.28)
==2141==    by 0x4F45E3F: std::basic_filebuf<char, std::char_traits<char> >::open(char const*, std::_Ios_Openmode) (in /tiedostot/mv/gcc102/lib64/libstdc++.so.6.0.28)
==2141==    by 0x48B710: GenericAssemblerFile::open(bool) (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x451490: CDirectiveFile::Encode() const (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x4548A4: CommandSequence::Encode() const (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x462E19: encodeAssembly(std::unique_ptr<CAssemblerCommand, std::default_delete<CAssemblerCommand> >, SymbolData&, TempData&) (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x46387E: runArmips(ArmipsArguments&) (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x4C3767: runFromCommandLine(std::vector<std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >, std::allocator<std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > > > const&, ArmipsArguments) (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x4C4E8F: wmain(int, wchar_t**) (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x415FAA: main (in /tiedostot/mv/c/armips/armips)
==2141== 
==2141== Thread 3:
==2141== Conditional jump or move depends on uninitialised value(s)
==2141==    at 0x4F88470: std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> > std::num_put<wchar_t, std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >::_M_insert_int<long>(std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, std::ios_base&, wchar_t, long) const (in /tiedostot/mv/gcc102/lib64/libstdc++.so.6.0.28)
==2141==    by 0x4F6C863: std::basic_ostream<wchar_t, std::char_traits<wchar_t> >& std::basic_ostream<wchar_t, std::char_traits<wchar_t> >::_M_insert<long>(long) (in /tiedostot/mv/gcc102/lib64/libstdc++.so.6.0.28)
==2141==    by 0x419DDF: tinyformat::detail::formatImpl(std::basic_ostream<wchar_t, std::char_traits<wchar_t> >&, wchar_t const*, tinyformat::detail::FormatArg const*, int) (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x492CCD: SymbolData::writeNocashSym() (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x4F09AA6: ??? (in /tiedostot/mv/gcc102/lib64/libstdc++.so.6.0.28)
==2141==    by 0x56B6FEA: start_thread (in /lib/libpthread-2.7.so)
==2141==    by 0x598F94C: clone (in /lib/libc-2.7.so)
==2141== 
==2141== Use of uninitialised value of size 8
==2141==    at 0x4F883B1: ??? (in /tiedostot/mv/gcc102/lib64/libstdc++.so.6.0.28)
==2141==    by 0x4F88499: std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> > std::num_put<wchar_t, std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >::_M_insert_int<long>(std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, std::ios_base&, wchar_t, long) const (in /tiedostot/mv/gcc102/lib64/libstdc++.so.6.0.28)
==2141==    by 0x4F6C863: std::basic_ostream<wchar_t, std::char_traits<wchar_t> >& std::basic_ostream<wchar_t, std::char_traits<wchar_t> >::_M_insert<long>(long) (in /tiedostot/mv/gcc102/lib64/libstdc++.so.6.0.28)
==2141==    by 0x419DDF: tinyformat::detail::formatImpl(std::basic_ostream<wchar_t, std::char_traits<wchar_t> >&, wchar_t const*, tinyformat::detail::FormatArg const*, int) (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x492CCD: SymbolData::writeNocashSym() (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x4F09AA6: ??? (in /tiedostot/mv/gcc102/lib64/libstdc++.so.6.0.28)
==2141==    by 0x56B6FEA: start_thread (in /lib/libpthread-2.7.so)
==2141==    by 0x598F94C: clone (in /lib/libc-2.7.so)
==2141== 
==2141== Conditional jump or move depends on uninitialised value(s)
==2141==    at 0x4F883B7: ??? (in /tiedostot/mv/gcc102/lib64/libstdc++.so.6.0.28)
==2141==    by 0x4F88499: std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> > std::num_put<wchar_t, std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >::_M_insert_int<long>(std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, std::ios_base&, wchar_t, long) const (in /tiedostot/mv/gcc102/lib64/libstdc++.so.6.0.28)
==2141==    by 0x4F6C863: std::basic_ostream<wchar_t, std::char_traits<wchar_t> >& std::basic_ostream<wchar_t, std::char_traits<wchar_t> >::_M_insert<long>(long) (in /tiedostot/mv/gcc102/lib64/libstdc++.so.6.0.28)
==2141==    by 0x419DDF: tinyformat::detail::formatImpl(std::basic_ostream<wchar_t, std::char_traits<wchar_t> >&, wchar_t const*, tinyformat::detail::FormatArg const*, int) (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x492CCD: SymbolData::writeNocashSym() (in /tiedostot/mv/c/armips/armips)
==2141==    by 0x4F09AA6: ??? (in /tiedostot/mv/gcc102/lib64/libstdc++.so.6.0.28)
==2141==    by 0x56B6FEA: start_thread (in /lib/libpthread-2.7.so)
==2141==    by 0x598F94C: clone (in /lib/libc-2.7.so)
==2141== 
==2141== 
==2141== HEAP SUMMARY:
==2141==     in use at exit: 72,704 bytes in 1 blocks
==2141==   total heap usage: 14,536 allocs, 14,535 frees, 2,315,474 bytes allocated
==2141== 
==2141== LEAK SUMMARY:
==2141==    definitely lost: 0 bytes in 0 blocks
==2141==    indirectly lost: 0 bytes in 0 blocks
==2141==      possibly lost: 0 bytes in 0 blocks
==2141==    still reachable: 72,704 bytes in 1 blocks
==2141==         suppressed: 0 bytes in 0 blocks
==2141== Rerun with --leak-check=full to see details of leaked memory
==2141== 
==2141== For counts of detected and suppressed errors, rerun with: -v
==2141== Use --track-origins=yes to see where uninitialised values come from
==2141== ERROR SUMMARY: 95 errors from 23 contexts (suppressed: 5 from 5)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions