On 5 Apr 2014 19:55, "Johannes Pfau" <nos...@example.com> wrote:
>
> Am Sun, 6 Apr 2014 02:51:28 +1000
> schrieb "Daniel Murphy" <yebbliesnos...@gmail.com>:
>
> > "Johannes Pfau"  wrote in message
> > news:lhp8h4$2j38$1...@digitalmars.com...
> >
> > > But we'd want this to work/inline nevertheless, right?:
> > > ------------
> > > void test(const(char)[] a)
> > > {
> > > }
> > >
> > > char[] abc;
> > > test(abc);
> > > ------------
> > >
> > > Then we still need to tell GCC that const(char)[] is a variant of
> > > char[] or it won't inline.
> >
> > Can you just strip all const/immutable/etc when the type is passed to
> > the backend?
> >
>
> This would impact debug info which is also emitted by the backend. GCC
> supports 'variants' of types which means only different qualifiers but
> the same apart from type qualifiers. We just need to set the variant
> information correctly (e.g. const(char)[] should be recognized as a
> variant of char[])

Right, and not having const applied to the type means that gcc might miss
an optimisation opportunity.

In this case however I think that parameters declared in should not be
mapped to C-style 'const'.  The 'in' keyword is close, but something other.

Reply via email to