The following warnings occurred: | |||||||||||||||
Warning [2] Undefined property: MyLanguage::$archive_pages - Line: 2 - File: printthread.php(287) : eval()'d code PHP 8.2.26 (Linux)
|
Build Error... - Printable Version +- EmuNewz Network (https://www.emunewz.net/forum) +-- Forum: Official Boards for Emunews Affiliated Emu Projects (https://www.emunewz.net/forum/forumdisplay.php?fid=47) +--- Forum: Official RPCS3 Forum [archive] (https://www.emunewz.net/forum/forumdisplay.php?fid=172) +---- Forum: RPCS3 - Support & Issue Reporting (https://www.emunewz.net/forum/forumdisplay.php?fid=163) +---- Thread: Build Error... (/showthread.php?tid=164097) Pages:
1
2
|
RE: Build Error... - Arkaran - 09-07-2014 For what I have understand, the issue comes from a replacement of new by a macro in rpcs3\rpcs3\stdafx.h when Memory Leak from Virtual Studio is activated. The new macro doesn't support the new placement from C++11. But wsWidgets use the new placemend in one of its header rpcs3\wxWidgets\include\wx\any.h line 216 which is included indirectly in 3 files :
I have found a thread in stackoverflow which describe a similar issue : http://stackoverflow.com/questions/1128458/memory-leak-detecting-and-overriding-new However the solution it suggests may not be relevant. Because the placement new is in a template class. Thus I don't know which "new" will be used during template instantiation in compilation, whether the "new" at the time of including the header defining the template, or the "new" at the time of template instantiation (so at the first use of template for a given type in source code). **Can't edit my previous post before it is validated, so I post a new one. Can a moderator merge it with my previous post please ? ** EDIT1 : As said darkf in #rpcs3 Quote:<darkf> placement new isn't C++11 afaikSo the new placement is not from C++11, it is quite old according to Wikipedia, but also rarely used. EDIT2 : The class template using the placement new is instantiated in the same header. So there is no issue if at the time header is included, new operator is from standard C++. A solution may be to save the new operator before overriding it with macro a way similar to the <crtdbg.h> file. (And that is why we are forced to override new outside crtdbg.h). So adding a #pragma push_macro("new") before #define new DBG_NEW in stdafx.h Then each time a problematic header is used :
After test, it seems to work. I don't know the exact process to submit a fix from a local git repository to rpcs3 repository. EDIT3: Fix submitted. |