[Issue 13427] New: [REG2.066] cannot inline default argument alloca(...)
via Digitalmars-d-bugs
digitalmars-d-bugs at puremagic.com
Fri Sep 5 16:20:10 PDT 2014
https://issues.dlang.org/show_bug.cgi?id=13427
Issue ID: 13427
Summary: [REG2.066] cannot inline default argument alloca(...)
Product: D
Version: D2
Hardware: All
OS: All
Status: NEW
Severity: regression
Priority: P1
Component: DMD
Assignee: nobody at puremagic.com
Reporter: Marco.Leise at gmx.de
A trick that Andrei and I came up with not long ago, to use alloca as part of a
default argument does not work any more. I developed this with someone on #D
one night and use it everywhere I need to pass a D string to a C API.
Use cases:
http://forum.dlang.org/thread/i1gnlo$18g0$1@digitalmars.com#post-i1gql2:241k6o:241:40digitalmars.com
https://github.com/mleise/fast/blob/master/source/fast/cstring.d#L92
---------------8<----------------
import core.stdc.stdlib;
enum allocaLimit = 1024;
auto wcharPtr(alias str)(void* buffer = 2*(str.length+1) <= allocaLimit ?
alloca(2*(str.length+1)) : null)
{
// ...
}
void main()
{
wcharPtr!"abc"w;
}
------------->8----------------
--
More information about the Digitalmars-d-bugs
mailing list