December 03, 2005
I reported this one a while back but have managed to produce a reasonable test case this time.  This bug is actually kind of a problem for me because it's preventing me from instantiating templates for unsigned values.


C:\code\d\bugs>type 140_2.d
template atomicLoad( T )
{
    T atomicLoad( inout T val )
    {
        volatile
        {
            return val;
        }
    }
}

void main()
{
    int  i;
    uint u;
    atomicLoad!(int)(i);
    atomicLoad!(uint)(u);
}
C:\code\d\bugs>dmd 140_2.d
140_2.d(7): function 140_2.atomicLoad!(uint).atomicLoad cannot access frame of f
unction atomicLoad
140_2.d(17): template instance 140_2.atomicLoad!(uint) error instantiating

C:\code\d\bugs>


December 04, 2005
Sean Kelly schrieb am 2005-12-03:
> I reported this one a while back but have managed to produce a reasonable test case this time.  This bug is actually kind of a problem for me because it's preventing me from instantiating templates for unsigned values.
>
>
> C:\code\d\bugs>type 140_2.d
> template atomicLoad( T )
> {
>      T atomicLoad( inout T val )
>      {
>          volatile
>          {
>              return val;
>          }
>      }
> }
>
> void main()
> {
>      int  i;
>      uint u;
>      atomicLoad!(int)(i);
>      atomicLoad!(uint)(u);
> }
> C:\code\d\bugs>dmd 140_2.d
> 140_2.d(7): function 140_2.atomicLoad!(uint).atomicLoad cannot access
> frame of f
> unction atomicLoad
> 140_2.d(17): template instance 140_2.atomicLoad!(uint) error instantiating

Added to DStress as http://dstress.kuehne.cn/run/v/volatile_02_A.d http://dstress.kuehne.cn/run/v/volatile_02_B.d http://dstress.kuehne.cn/run/v/volatile_02_C.d http://dstress.kuehne.cn/run/v/volatile_02_D.d

Thomas