Thread overview | ||||||||
---|---|---|---|---|---|---|---|---|
|
June 08, 2018 [Issue 18954] extern(C++) ICE when `cppmangle` is used | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=18954 Manu <turkeyman@gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |C++, industry --- Comment #1 from Manu <turkeyman@gmail.com> --- I don't understand the intent of the code that asserts. Walter might want to have a look, since he probably understands what the logic is intended to do? -- |
July 06, 2018 [Issue 18954] extern(C++) ICE when `cppmangle` is used | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=18954 Mike Franklin <slavo5150@yahoo.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |slavo5150@yahoo.com --- Comment #2 from Mike Franklin <slavo5150@yahoo.com> --- I cannot reproduce this on Linux or Windows with 2.081. -- |
July 06, 2018 [Issue 18954] extern(C++) ICE when `cppmangle` is used | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=18954 --- Comment #3 from Manu <turkeyman@gmail.com> --- I'm pretty sure nobody attempted to fix it...? -- |
July 06, 2018 [Issue 18954] extern(C++) ICE when `cppmangle` is used | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=18954 --- Comment #4 from Mike Franklin <slavo5150@yahoo.com> --- I attempted to fix it, but couldn't reproduce it, so I don't know what needs to be fixed. -- |
July 10, 2018 [Issue 18954] extern(C++) ICE when `cppmangle` is used | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=18954 --- Comment #5 from Manu <turkeyman@gmail.com> --- I just tried to repro with 2.081.1b, this issue as logged above seems to be resolved. This variant persists though: test.d: -------------------------------------------------------------- extern (C++, std) { extern (C++, class) struct allocator(T) { } struct char_traits(Char) { } extern (C++, class) struct basic_string(T, Traits, Alloc) { } alias string = basic_string!(char, char_traits!char, allocator!char); } extern (C++) void test(ref const(std.string) str) {} -------------------------------------------------------------- I just removed the explicit `extern(C++, struct)` from the struct. It's declared as a struct, no need to override a struct as struct! In this code, it gets mangled as a class instead of as a struct, which is incorrect. This is only relevant on windows, this issue doesn't affect linux (posix mangling doesn't distinguish class/struct). -- |
July 10, 2018 [Issue 18954] extern(C++) ICE when `cppmangle` is used | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=18954 Manu <turkeyman@gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution|--- |FIXED --- Comment #6 from Manu <turkeyman@gmail.com> --- That still-broken variant is logged as another bug: https://issues.dlang.org/show_bug.cgi?id=18955 This particular one seems to have been fixed... perhaps by accident? O_o I can't find a recent patch that looks like it should have fixed this. Marking as resolved... -- |
Copyright © 1999-2021 by the D Language Foundation