[Issue 14956] C++ Mangling incompatible with C++11
https://issues.dlang.org/show_bug.cgi?id=14956 Nicholas Wilson changed: What|Removed |Added Status|NEW |RESOLVED CC||iamthewilsona...@hotmail.co ||m Resolution|--- |FIXED --- Comment #15 from Nicholas Wilson --- This has since been fixed --
[Issue 14956] C++ Mangling incompatible with C++11
https://issues.dlang.org/show_bug.cgi?id=14956 --- Comment #14 from Suleyman Sahmi (سليمان السهمي) --- I opened a dedicated issue for the abi_tag: issue #19949. --
[Issue 14956] C++ Mangling incompatible with C++11
https://issues.dlang.org/show_bug.cgi?id=14956 --- Comment #13 from Sahmi Soulaïman (سليمان السهمي)--- (In reply to Walter Bright from comment #12) > The code is neither C++ nor D. Please provide an accurate code example, what > it mangles to, and what it should mangle to. Thanks! example: --- #include std::string toString(char* s) { return s; } --- The function "toString" above returns `std::string`, thus mangles to: "_Z8toStringB5cxx11Pc", which is in demangled form: "toString[abi:cxx11](char*)". The question is: how to emulate the "[abi:cxx11]" part of the mangling in d? Thanks! --
[Issue 14956] C++ Mangling incompatible with C++11
https://issues.dlang.org/show_bug.cgi?id=14956 --- Comment #12 from Walter Bright--- (In reply to Sahmi Soulaïman (سليمان السهمي) from comment #10) > std::base_string!char func() {} The code is neither C++ nor D. Please provide an accurate code example, what it mangles to, and what it should mangle to. Thanks! --
[Issue 14956] C++ Mangling incompatible with C++11
https://issues.dlang.org/show_bug.cgi?id=14956 --- Comment #11 from Walter Bright--- I'm not sure this is actually a D compiler problem. If, on the D side, basic_string is aliased to __cxx11::basic_string, it should mangle correctly. This is pointed out in Comment 4. --
[Issue 14956] C++ Mangling incompatible with C++11
https://issues.dlang.org/show_bug.cgi?id=14956 Walter Brightchanged: What|Removed |Added Keywords||mangling CC||bugzi...@digitalmars.com --
[Issue 14956] C++ Mangling incompatible with C++11
https://issues.dlang.org/show_bug.cgi?id=14956 Sahmi Soulaïman (سليمان السهمي)changed: What|Removed |Added CC||sahmi.soulaim...@gmail.com --- Comment #10 from Sahmi Soulaïman (سليمان السهمي) --- I would like to point out that the __cxx11 namespace is not the only problem, infact there is another non trivial problem is the abi_tag used on functions that return a std::basic_string. for exaplme the following function: ``` std::base_string!char func() {} ``` will get the (demangled) name "func[cxx11]()", and there is actually no way of representing that in D. --
[Issue 14956] C++ Mangling incompatible with C++11
https://issues.dlang.org/show_bug.cgi?id=14956 --- Comment #9 from github-bugzi...@puremagic.com --- Commit pushed to master at https://github.com/D-Programming-Language/dmd https://github.com/D-Programming-Language/dmd/commit/f9b657b5fdca5658b4808fe444281fa4df23250a Merge pull request #5261 from ibuclaw/issue14956a Parameter types should have namespace std mangling too --
[Issue 14956] C++ Mangling incompatible with C++11
https://issues.dlang.org/show_bug.cgi?id=14956 --- Comment #8 from github-bugzi...@puremagic.com --- Commit pushed to stable at https://github.com/D-Programming-Language/dmd https://github.com/D-Programming-Language/dmd/commit/574542fe2cf83dc32ce59fd82631184de91ef2a5 Merge pull request #5262 from ibuclaw/issue14956b --
[Issue 14956] C++ Mangling incompatible with C++11
https://issues.dlang.org/show_bug.cgi?id=14956 --- Comment #7 from github-bugzi...@puremagic.com --- Commit pushed to master at https://github.com/D-Programming-Language/dmd https://github.com/D-Programming-Language/dmd/commit/574542fe2cf83dc32ce59fd82631184de91ef2a5 Merge pull request #5262 from ibuclaw/issue14956b [14965]: Add versioned-out branch to support new C++-11 implementations of std::string --
[Issue 14956] C++ Mangling incompatible with C++11
https://issues.dlang.org/show_bug.cgi?id=14956 --- Comment #3 from Iain Buclaw--- (In reply to Marco Leise from comment #2) > The mangling of the mangling changed? I thought that was a typo, but > obviously you are right. The C++-98 use of "Sb" and "Ss" is a special mangle string, and not actually representative of the actual name or namespace of basic_string. Perhaps a better way of putting it would have been: "The abbreviations for mangling basic_string have been removed and replaced with a new namespace". --
[Issue 14956] C++ Mangling incompatible with C++11
https://issues.dlang.org/show_bug.cgi?id=14956 Jacob Carlborgchanged: What|Removed |Added CC||d...@me.com --- Comment #5 from Jacob Carlborg --- (In reply to Iain Buclaw from comment #4) > Which leaves us with the question, how do figure out whether to use version > condition branch A or B? The user specifies the appropriate version flag. Or the compiler need a new flag for this. --
[Issue 14956] C++ Mangling incompatible with C++11
https://issues.dlang.org/show_bug.cgi?id=14956 --- Comment #6 from Iain Buclaw--- (In reply to Jacob Carlborg from comment #5) > (In reply to Iain Buclaw from comment #4) > > > Which leaves us with the question, how do figure out whether to use version > > condition branch A or B? > > The user specifies the appropriate version flag. Or the compiler need a new > flag for this. Well, so far, apart from the testsuite, is there any other place this is necessary? Probably not. We don't maintain a core.stdcxx library, thank goodness. And those who wish to use bindings to C++ std, then they can make the change in their code and provide some user defined version to select one or the other. I've only found one bug that prevents this. I've raised a PR for that. https://github.com/D-Programming-Language/dmd/pull/5261 --
[Issue 14956] C++ Mangling incompatible with C++11
https://issues.dlang.org/show_bug.cgi?id=14956 Marco Leisechanged: What|Removed |Added CC||marco.le...@gmx.de --- Comment #2 from Marco Leise --- The mangling of the mangling changed? I thought that was a typo, but obviously you are right. They mangled and wrapped the mangling into a __cxx11 wrapper. I assume the only way out of this is providing a -cxx11 flag for dmd? >.< --
[Issue 14956] C++ Mangling incompatible with C++11
https://issues.dlang.org/show_bug.cgi?id=14956 Iain Buclawchanged: What|Removed |Added CC||ibuc...@gdcproject.org --- Comment #1 from Iain Buclaw --- Ubuntu 15.10 has been released, and comes with gcc-5.2 as the default compiler. So as more developers upgrade, the more likely they are to notice that D2 testsuite no longer passes (or whatever C++ interop they are using in their program starts failing). --
[Issue 14956] C++ Mangling incompatible with C++11
https://issues.dlang.org/show_bug.cgi?id=14956 Sobirari Muhomorichanged: What|Removed |Added Keywords||C++ --