I am using the latest codeblocks and WX_3_0_BRANCH, compiling everything with debugging on (I think that this makes the code more picky). When I do this, I get 2 reproducible assertions:
type #include< in an edit window
You'll get an assertion as the code tries get the "last" character of an empty string. This fix is very obvious.
call a function and type some args. Something like fn(a,b,c,d)
You'll get an assertion. There may be a better fix here. AFAIK the code is just pedantically failing because its expecting a long int but getting just an int. Yes, it may be a wx error because I thought %d should be int... regardless, explicit casting seems to fix:
Index: debian/changelog =================================================================== --- debian/changelog (revision 10036) +++ debian/changelog (working copy) @@ -1,4 +1,4 @@ -codeblocks (13.12svn9513) unstable; urgency=low +codeblocks (13.12svn10036) unstable; urgency=low * New svn revision Index: src/plugins/codecompletion/codecompletion.cpp =================================================================== --- src/plugins/codecompletion/codecompletion.cpp (revision 10036) +++ src/plugins/codecompletion/codecompletion.cpp (working copy) @@ -1146,8 +1146,11 @@ // which has the prefix "abc" wxString filename = line.SubString(keyPos, tknEnd - lineStartPos - 1); filename.Replace(wxT("\\"), wxT("/"), true); - if (filename.Last() == wxT('"') || filename.Last() == wxT('>')) + if (!filename.empty()) + { + if (filename.Last() == wxT('"') || filename.Last() == wxT('>')) filename.RemoveLast(); + } size_t maxFiles = m_CCMaxMatches; if (filename.IsEmpty() && maxFiles > 3000) Index: src/sdk/ccmanager.cpp =================================================================== --- src/sdk/ccmanager.cpp (revision 10036) +++ src/sdk/ccmanager.cpp (working copy) @@ -1102,7 +1102,7 @@ tips.front().Prepend(wxT("\001\002")); // up/down arrows ++offset; } - tips.push_back(wxString::Format(wxT("(%d/%u)"), m_CurCallTip - m_CallTips.begin() + 1, m_CallTips.size())); + tips.push_back(wxString::Format(wxT("(%ld/%lu)"), (long int) (m_CurCallTip - m_CallTips.begin() + 1), (long unsigned int) (m_CallTips.size()))); // store for better first choice later m_CallTipChoiceDict[CCManagerHelper::CallTipToInt(m_CallTips.front().tip, m_CallTips.size())] = m_CurCallTip - m_CallTips.begin(); // fuzzy store
I don't have C::B with wx3, but look at the patch file, I think both are obvious fix. Thanks, I will apply it in a few days.
The first part of the patch is already fixed in the trunk:
Last edit: ollydbg 2015-10-06
The second part of the patch is also fixed in the commit:
Which use the operator<< method.
So, I close this ticket, and sorry for the late response. Thanks for the contribution.