Jump to page: 1 2
Thread overview
[Issue 19482] ICE with extern(C++) and static foreach
Dec 12, 2018
Manu
Dec 12, 2018
Nicholas Wilson
Dec 12, 2018
Nicholas Wilson
Dec 13, 2018
Manu
Dec 13, 2018
Nicholas Wilson
Dec 13, 2018
timon.gehr@gmx.ch
Dec 13, 2018
Manu
[Issue 19482] attributes incorrectly applied to static foreach local variables
Apr 05, 2021
timon.gehr@gmx.ch
Nov 01, 2021
Dlang Bot
Nov 02, 2021
Dlang Bot
December 12, 2018
https://issues.dlang.org/show_bug.cgi?id=19482

Manu <turkeyman@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |C++, industry

--
December 12, 2018
https://issues.dlang.org/show_bug.cgi?id=19482

Nicholas Wilson <iamthewilsonator@hotmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |iamthewilsonator@hotmail.co
                   |                            |m

--- Comment #1 from Nicholas Wilson <iamthewilsonator@hotmail.com> ---
Hmm, works fine on Posix. -vcg-ast gives

---
import object;
void main()
{
        return 0;
}
extern (C++) class foo
{
        static foreach (i; tuple(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
94, 95, 96, 97, 98, 99))
        {
                {}
        }
}
RTInfo!(foo)
{
        enum typeof(null) RTInfo = null;

}
---

No int[] in sight.

What does -vcg-as gives on Win64?

--
December 12, 2018
https://issues.dlang.org/show_bug.cgi?id=19482

Nicholas Wilson <iamthewilsonator@hotmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |iamthewilsonator@hotmail.co
                   |                            |m

--- Comment #1 from Nicholas Wilson <iamthewilsonator@hotmail.com> ---
Hmm, works fine on Posix. -vcg-ast gives

---
import object;
void main()
{
        return 0;
}
extern (C++) class foo
{
        static foreach (i; tuple(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
94, 95, 96, 97, 98, 99))
        {
                {}
        }
}
RTInfo!(foo)
{
        enum typeof(null) RTInfo = null;

}
---

No int[] in sight.

What does -vcg-as gives on Win64?

--
December 13, 2018
https://issues.dlang.org/show_bug.cgi?id=19482

--- Comment #2 from Manu <turkeyman@gmail.com> ---
It doesn't give anything, because the ICE... ;)

--
December 13, 2018
https://issues.dlang.org/show_bug.cgi?id=19482

--- Comment #3 from Nicholas Wilson <iamthewilsonator@hotmail.com> ---
> It doesn't give anything, because the ICE... ;)

Haha. And if you comment out the ICE?

--
December 13, 2018
https://issues.dlang.org/show_bug.cgi?id=19482

timon.gehr@gmx.ch changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |timon.gehr@gmx.ch

--- Comment #4 from timon.gehr@gmx.ch ---
The issue is that type qualifiers in the context are applied to `static foreach`-local variables. This behavior is unintended and changing it will fix the ICE.

E.g.:

immutable static foreach(i;0..1) pragma(msg, typeof(i));

will print `immutable(int)`, but it should print `int`.

--
December 13, 2018
https://issues.dlang.org/show_bug.cgi?id=19482

--- Comment #5 from Manu <turkeyman@gmail.com> ---
Oh wow. Yeah, that's pretty broken :)

--
April 04, 2021
https://issues.dlang.org/show_bug.cgi?id=19482

moonlightsentinel@disroot.org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |moonlightsentinel@disroot.o
                   |                            |rg

--- Comment #6 from moonlightsentinel@disroot.org ---
The initial test case compiles fine with current master

--
April 05, 2021
https://issues.dlang.org/show_bug.cgi?id=19482

timon.gehr@gmx.ch changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|ICE with extern(C++) and    |attributes incorrectly
                   |static foreach              |applied to static foreach
                   |                            |local variables
                 OS|Windows                     |All

--- Comment #7 from timon.gehr@gmx.ch ---
(In reply to moonlightsentinel from comment #6)
> The initial test case compiles fine with current master

Can confirm (using wine on linux). However, it seems the underlying issue remains unfixed, changing title.

--
November 01, 2021
https://issues.dlang.org/show_bug.cgi?id=19482

Dlang Bot <dlang-bot@dlang.rocks> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |pull

--- Comment #8 from Dlang Bot <dlang-bot@dlang.rocks> ---
@BorisCarvajal created dlang/dmd pull request #13253 "Fix Issue 19482 - attributes incorrectly applied to static foreach local variables" fixing this issue:

- Fix Issue 19482 - attributes incorrectly applied to static foreach local variables

https://github.com/dlang/dmd/pull/13253

--
« First   ‹ Prev
1 2