[Issue 24466] `scope(exit)` should not be allowed in the main scope of `noreturn` functions

2024-03-29 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=24466

elpenguin...@gmail.com changed:

   What|Removed |Added

 CC||elpenguin...@gmail.com

--- Comment #1 from elpenguin...@gmail.com ---
I don't think it's accurate to do that for all noreturn scopes. Consider:
```
noreturn v(int a) {
scope(exit) a++;
{
scope(exit) a++;
}
throw new Exception("Exception");
}
```

In this code, both scope guards should be executed.

--


[Issue 24466] New: `scope(exit)` should not be allowed in the main scope of `noreturn` functions

2024-03-29 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=24466

  Issue ID: 24466
   Summary: `scope(exit)` should not be allowed in the main scope
of `noreturn` functions
   Product: D
   Version: D2
  Hardware: All
OS: All
Status: NEW
  Keywords: accepts-invalid
  Severity: minor
  Priority: P1
 Component: dmd
  Assignee: nob...@puremagic.com
  Reporter: b2.t...@gmx.com

consider the following code

```d
noreturn v(int a)
{
scope(exit) a++; // cant be executed
{
scope(exit) a++; // this one is okay
}
assert(0);
}
```

There should be a sema error for the first scope guard as the defered
expression statement cannot be executed.

--


[Issue 24349] object noreturn link is missing

2024-01-29 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=24349

--- Comment #5 from Nick Treleaven  ---
Filed: https://github.com/dlang/ddox/issues/249

--


[Issue 24349] object noreturn link is missing

2024-01-27 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=24349

--- Comment #4 from Nick Treleaven  ---
> alias noreturn = Nn;

Ddoc generates (more) correct declaration:
> alias noreturn = noreturn; 
https://dlang.org/phobos-prerelease/object.html#.noreturn

So the problem seems to be with Ddox, perhaps file a bug here:
https://github.com/dlang/ddox/issues

--


[Issue 24349] object noreturn link is missing

2024-01-26 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=24349

--- Comment #3 from Jim Balter  ---
I guess I should have been more explicit. It isn't just that the link is
missing ... this is also  wrong:

alias noreturn = Nn;

I doubt that the fix for the link fixed this ... is there some way to look at
the docs for master?

--


[Issue 24349] object noreturn link is missing

2024-01-22 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=24349

Dlang Bot  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED

--- Comment #2 from Dlang Bot  ---
dlang/dmd pull request #16077 "Fix Bugzilla 24349 - object noreturn link is
missing" was merged into master:

- 4232aeddcc725107bef1793496515e6196aaa623 by Nick Treleaven:
  Fix Bugzilla 24349 - object noreturn link is missing

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

--


[Issue 24349] object noreturn link is missing

2024-01-22 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=24349

Nick Treleaven  changed:

   What|Removed |Added

URL|http://dlang.org/library/dr |
   |untime/src/object.html  |
 CC||n...@geany.org
  Component|dmd |druntime
Summary|[Alias noreturn]|object noreturn link is
   |documentation is bolluxed   |missing

--


[Issue 24349] [Alias noreturn] documentation is bolluxed

2024-01-22 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=24349

Dlang Bot  changed:

   What|Removed |Added

   Keywords||pull

--- Comment #1 from Dlang Bot  ---
@ntrel created dlang/dmd pull request #16077 "Fix Bugzilla 24349 - object
noreturn link is missing" fixing this issue:

- Fix Bugzilla 24349 - object noreturn link is missing

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

--


[Issue 24349] New: [Alias noreturn] documentation is bolluxed

2024-01-20 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=24349

  Issue ID: 24349
   Summary: [Alias noreturn] documentation is bolluxed
   Product: D
   Version: D2
  Hardware: All
   URL: http://dlang.org/library/druntime/src/object.html
OS: All
Status: NEW
  Severity: minor
  Priority: P3
 Component: dmd
  Assignee: nob...@puremagic.com
  Reporter: j...@balter.name

https://dlang.org/library/object/noreturn.html

reads:

Bottom type. See .

alias noreturn = Nn;

The source code is

/**
 * Bottom type.
 * See $(DDSUBLINK spec/type, noreturn).
 */
alias noreturn = typeof(*null);

--


[Issue 23379] Cast of expressions with type noreturn result in ice

2023-10-13 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=23379

Basile-z  changed:

   What|Removed |Added

 Status|REOPENED|RESOLVED
 CC||b2.t...@gmx.com
 Resolution|--- |WORKSFORME

--


[Issue 23331] implicit cast from noreturn crashes compiler in various ways

2023-10-13 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=23331

Basile-z  changed:

   What|Removed |Added

 Status|REOPENED|RESOLVED
 CC||b2.t...@gmx.com
 Resolution|--- |WORKSFORME

--


[Issue 24167] New: @noreturn compiles because of noreturn

2023-09-27 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=24167

  Issue ID: 24167
   Summary: @noreturn compiles because of noreturn
   Product: D
   Version: D2
  Hardware: x86_64
OS: FreeBSD
Status: NEW
  Severity: enhancement
  Priority: P1
 Component: dmd
  Assignee: nob...@puremagic.com
  Reporter: issues.dl...@jmdavisprog.com

This code compiles

string foo() @noreturn
{
return null;
}

It's not noreturn, and it wasn't correctly marked as noreturn, since the spec
says that noreturn is a return type rather than an attribute, but the
definition of noreturn in object.d:

alias noreturn = typeof(*null);

makes it possible. I just ran into some code today which incorrectly used
@noreturn, and it didn't catch what noreturn is supposed to catch (even though
the person writing the code thought that that's what it was doing).

Strictly speaking, I'm not sure that it's a bug that the alias for noreturn
makes it possible to use @noreturn, but it seems error-prone for folks who
misremember (or mislearned) how noreturn is supposed to work - and as I
understand it, there was discussion of implementing @noreturn before we ended
up with noreturn, so it's not entirely surprising that someone would make this
mistake.

So, I would argue that ideally, we would disallow @noreturn, though given how
noreturn is defined, I don't know what a good way to do that would be. Perhaps
typeof(*null) should just be disallowed for attributes, though I don't know if
special-casing that is any different from special-casing @noreturn to block it.
But maybe actual compiler people will have a better idea.

--


[Issue 24148] noreturn static array initialization causes ICE

2023-09-18 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=24148

RazvanN  changed:

   What|Removed |Added

 CC||razvan.nitu1...@gmail.com
   Severity|normal  |critical

--


[Issue 24148] noreturn static array initialization causes ICE

2023-09-17 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=24148

Max Samukha  changed:

   What|Removed |Added

Summary|noreturn static array   |noreturn static array
   |initialization causes ICE   |initialization causes ICE
   |(illegal instruction)   |

--- Comment #1 from Max Samukha  ---
It's core.exception.AssertError@src\dmd\backend\cod4.d(405): Assertion failure

--


[Issue 24148] New: noreturn static array initialization causes ICE (illegal instruction)

2023-09-17 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=24148

  Issue ID: 24148
   Summary: noreturn static array initialization causes ICE
(illegal instruction)
   Product: D
   Version: D2
  Hardware: x86_64
OS: All
Status: NEW
  Keywords: ice-on-valid-code
  Severity: normal
  Priority: P1
 Component: dmd
  Assignee: nob...@puremagic.com
  Reporter: maxsamu...@gmail.com

void main()
{
noreturn[1] x = noreturn[1].init;
noreturn[1] x2 = noreturn.init;
}

Illegal instruction (core dumped)

--


[Issue 24112] binary expressions with noreturn vars produce inconsistent results

2023-09-07 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=24112

--- Comment #6 from Dlang Bot  ---
dlang/dmd pull request #15584 "Revert "Fix Issue 24112 - binary expressions
with noreturn vars produ…" was merged into master:

- a90c6d25063b2f5a4e17c165acc63a2800ac68ac by Basile Burg:
  Revert "Fix Issue 24112 - binary expressions with noreturn vars produce
inconsistent results (#15564)"

  This reverts commit 1a9a19f8b384a4c9f6d27dcd04f83bf8dd1546cf.

  This breaks the test suite (fail_compilation/noreturn_expr.d).

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

--


[Issue 24112] binary expressions with noreturn vars produce inconsistent results

2023-09-07 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=24112

Basile-z  changed:

   What|Removed |Added

 Status|RESOLVED|REOPENED
 CC||b2.t...@gmx.com
 Resolution|FIXED   |---

--- Comment #5 from Basile-z  ---
The fixed that was merged breaks the one for
https://issues.dlang.org/show_bug.cgi?id=24117

--


[Issue 24112] binary expressions with noreturn vars produce inconsistent results

2023-09-07 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=24112

Dlang Bot  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED

--- Comment #4 from Dlang Bot  ---
dlang/dmd pull request #15564 "Fix Issue 24112 - binary expressions with
noreturn vars produce incon…" was merged into master:

- c5f9ca5bd2952b8f0667ab94133477e83596cdb9 by Nick Treleaven:
  Fix Issue 24112 - binary expressions with noreturn vars produce inconsistent
results

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

--


[Issue 24117] noreturn can be used as expression

2023-08-31 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=24117

Dlang Bot  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED

--- Comment #6 from Dlang Bot  ---
dlang/dmd pull request #15562 "Fix Issue 24117 - noreturn can be used as
expression" was merged into master:

- 46f1225eaeaf4332f5769ce5b1e3853d88ede527 by Nick Treleaven:
  Fix Issue 24117 - noreturn can be used as expression

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

--


[Issue 24112] binary expressions with noreturn vars produce inconsistent results

2023-08-30 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=24112

--- Comment #3 from elpenguin...@gmail.com ---
it's true that noreturn isn't an integral type, but it can implicitly convert
to integral types. other instances of implicit conversion are allowed (structs
with integer alias this, for example), so I think noreturn should be "allowed"
as well, for consistency

--


[Issue 24112] binary expressions with noreturn vars produce inconsistent results

2023-08-30 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=24112

Nick Treleaven  changed:

   What|Removed |Added

 CC||n...@geany.org

--- Comment #2 from Nick Treleaven  ---
> except in the last three statements, which result in a compile error instead.

I think that's correct as the spec says:

> The operands must be integral types

https://dlang.org/spec/expression.html#shift_expressions

--


[Issue 24112] binary expressions with noreturn vars produce inconsistent results

2023-08-30 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=24112

Dlang Bot  changed:

   What|Removed |Added

   Keywords||pull

--- Comment #1 from Dlang Bot  ---
@ntrel created dlang/dmd pull request #15564 "Fix Issue 24112 - binary
expressions with noreturn vars produce incon…" fixing this issue:

- Fix Issue 24112 - binary expressions with noreturn vars produce inconsistent
results

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

--


[Issue 24114] no crash on use of a noreturn enum member

2023-08-30 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=24114

Nick Treleaven  changed:

   What|Removed |Added

 CC||n...@geany.org

--- Comment #1 from Nick Treleaven  ---
Note - the enum declaration is rejected by the fix for issue #24117.

--


[Issue 24117] noreturn can be used as expression

2023-08-30 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=24117

--- Comment #5 from Nick Treleaven  ---
> enum E {e0 = 0, e1 = 1, illegal = noreturn} 

> foreach (const i; 0 .. noreturn){}

I made a new fix that is more precise which does reject the 2 above and should
cover all cases.

--


[Issue 24117] noreturn can be used as expression

2023-08-30 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=24117

--- Comment #4 from Dlang Bot  ---
@ntrel created dlang/dmd pull request #15562 "Fix Issue 24117 - noreturn can be
used as expression" fixing this issue:

- Fix Issue 24117 - noreturn can be used as expression

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

--


[Issue 24117] noreturn can be used as expression

2023-08-28 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=24117

--- Comment #3 from Basile-z  ---
Example 2 was about the member initializer

Also if it's set to 0, then this becomes a problem because it's not expected to
have two members of the same value, e.g

```d
enum E {e0 = 0, e1 = 1, illegal = noreturn} 
```

Otherwise I have a 3rd example:

```d
void main()
{
foreach (const i; 0 .. noreturn){}
} 
```

--


[Issue 24117] noreturn can be used as expression

2023-08-28 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=24117

Dlang Bot  changed:

   What|Removed |Added

   Keywords||pull

--- Comment #2 from Dlang Bot  ---
@ntrel created dlang/dmd pull request #15561 "Fix Issue 24117 - noreturn can be
used as expression" fixing this issue:

- Fix Issue 24117 - noreturn can be used as expression

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

--


[Issue 24117] noreturn can be used as expression

2023-08-28 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=24117

Nick Treleaven  changed:

   What|Removed |Added

 CC||n...@geany.org

--- Comment #1 from Nick Treleaven  ---
This code:

auto e = noreturn + 1;

Gets lowered to:

int e = 1;

Also, `cast(int) E.illegal` is 0.

--


[Issue 24115] No runtime crash on use of a noreturn template argument

2023-08-27 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=24115

Basile-z  changed:

   What|Removed |Added

 Resolution|FIXED   |INVALID

--


[Issue 24115] No runtime crash on use of a noreturn template argument

2023-08-27 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=24115

Basile-z  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED

--


[Issue 24117] New: noreturn can be used as expression

2023-08-27 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=24117

  Issue ID: 24117
   Summary: noreturn can be used as expression
   Product: D
   Version: D2
  Hardware: All
OS: All
Status: NEW
  Keywords: accepts-invalid
  Severity: normal
  Priority: P1
 Component: dmd
  Assignee: nob...@puremagic.com
  Reporter: b2.t...@gmx.com

Example 1, in an AddExpression:

```d
int v(e)()
{
return e + 0;
}

int main()
{
return v!(noreturn)();
} 
```

Example 2, as EnumMember initializer:

```d
enum E {e1 = 1, e2 = 2, illegal = noreturn}

void main()
{
E e;
e = E.illegal;
}
```

--


[Issue 24114] no crash on use of a noreturn enum member

2023-08-27 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=24114

Basile-z  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |INVALID

--


[Issue 24116] noreturn not accepted as argument of a template value parameter

2023-08-27 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=24116

Basile-z  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |INVALID

--


[Issue 24116] noreturn not accepted as argument of a template value parameter

2023-08-27 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=24116

Basile-z  changed:

   What|Removed |Added

Summary|no return not accepted as   |noreturn not accepted as
   |argument of a template  |argument of a template
   |value parameter |value parameter

--


[Issue 24114] no crash on use of a noreturn enum member

2023-08-27 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=24114

Basile-z  changed:

   What|Removed |Added

   See Also||https://issues.dlang.org/sh
   ||ow_bug.cgi?id=24115

--


[Issue 24115] No runtime crash on use of a noreturn template argument

2023-08-27 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=24115

Basile-z  changed:

   What|Removed |Added

   See Also||https://issues.dlang.org/sh
   ||ow_bug.cgi?id=24114

--


[Issue 24115] New: No runtime crash on use of a noreturn template argument

2023-08-27 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=24115

  Issue ID: 24115
   Summary: No runtime crash on use of a noreturn template
argument
   Product: D
   Version: D2
  Hardware: All
OS: All
Status: NEW
  Keywords: wrong-code
  Severity: normal
  Priority: P1
 Component: dmd
  Assignee: nob...@puremagic.com
  Reporter: b2.t...@gmx.com

For the following code there's no runtime crash

```
int v(e)()
{
return e + 0;
}

int main()
{
return v!(noreturn)();
}  
```

--


[Issue 24114] New: no crash on use of a noreturn enum member

2023-08-27 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=24114

  Issue ID: 24114
   Summary: no crash on use of a noreturn enum member
   Product: D
   Version: D2
  Hardware: All
OS: All
Status: NEW
  Keywords: wrong-code
  Severity: normal
  Priority: P1
 Component: dmd
  Assignee: nob...@puremagic.com
  Reporter: b2.t...@gmx.com

For the following code there's no runtime crash

```
enum E {e1 = 1, e2 = 2, illegal = noreturn}

void main()
{
E e;
// that assignment should have the same effect as assert(0)
e = E.illegal;
// just to be sure
if (e) {}
}
```

--


[Issue 24112] New: binary expressions with noreturn vars produce inconsistent results

2023-08-26 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=24112

  Issue ID: 24112
   Summary: binary expressions with noreturn vars produce
inconsistent results
   Product: D
   Version: D2
  Hardware: All
OS: All
Status: NEW
  Keywords: rejects-valid, wrong-code
  Severity: normal
  Priority: P1
 Component: dmd
  Assignee: nob...@puremagic.com
  Reporter: elpenguin...@gmail.com

```
noreturn foo;
int a = foo / 1;
int b = foo + 1;
int c = foo - 1;
int d = foo * 1;
int e = foo % 1;
int f = foo ^^ 1;
int g = foo & 1;
int h = foo | 1;
int i = foo ^ 1;
int j = foo << 1;
int k = foo >> 1;
int l = foo >>> 1;
```
As of DMD 2.105.0, none of these statements produce the expected runtime
errors. noreturn vars appear to be treated as integers with the value 0, except
in the last three statements, which result in a compile error instead.

--


[Issue 24054] return expression expected on noreturn function

2023-07-24 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=24054

Dlang Bot  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED

--- Comment #3 from Dlang Bot  ---
dlang/dmd pull request #15439 "Fix 24054 - return expression expected on
noreturn function" was merged into master:

- 01d613ecec3867ee1e71d3f3e08c60de35a41934 by Dennis Korpel:
  Fix 24054 - return expression expected on noreturn function

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

--


[Issue 24054] return expression expected on noreturn function

2023-07-21 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=24054

Dennis  changed:

   What|Removed |Added

 CC||dkor...@live.nl

--- Comment #2 from Dennis  ---
> and should probably suggest removal of the statement

That doesn't result in valid code, it needs to be replaced with something typed
`noreturn`.

--


[Issue 24054] return expression expected on noreturn function

2023-07-21 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=24054

Dlang Bot  changed:

   What|Removed |Added

   Keywords||pull

--- Comment #1 from Dlang Bot  ---
@dkorpel created dlang/dmd pull request #15439 "Fix 24054 - return expression
expected on noreturn function" fixing this issue:

- Fix 24054 - return expression expected on noreturn function

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

--


[Issue 24054] New: return expression expected on noreturn function

2023-07-20 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=24054

  Issue ID: 24054
   Summary: return expression expected on noreturn function
   Product: D
   Version: D2
  Hardware: All
OS: All
Status: NEW
  Keywords: diagnostic
  Severity: normal
  Priority: P1
 Component: dmd
  Assignee: nob...@puremagic.com
  Reporter: elpenguin...@gmail.com

```
noreturn foo() { return; }
```

As of DMD 2.104.2, this results in "Error: return expression expected". This is
a misleading error, and should probably suggest removal of the statement.

--


[Issue 23950] Weird backend fail with noreturn type - cod1.d(4027): Assertion failure

2023-05-31 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=23950

RazvanN  changed:

   What|Removed |Added

   Keywords||backend, ice
 CC||razvan.nitu1...@gmail.com
   Severity|normal  |critical

--


[Issue 23950] Weird backend fail with noreturn type - cod1.d(4027): Assertion failure

2023-05-31 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=23950

--- Comment #1 from m...@ernestocastellotti.it ---
The absurd thing is that instead this code compiles and works correctly:

import core.stdc.stdlib;

void main() {
auto foo = (false != true) && true || abort();
}


This looks just like a bad bug in the backend depending on what the code from
the frontend

--


[Issue 23950] New: Weird backend fail with noreturn type - cod1.d(4027): Assertion failure

2023-05-31 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=23950

  Issue ID: 23950
   Summary: Weird backend fail with noreturn type - cod1.d(4027):
Assertion failure
   Product: D
   Version: D2
  Hardware: x86_64
OS: Linux
Status: NEW
  Severity: normal
  Priority: P1
 Component: dmd
  Assignee: nob...@puremagic.com
  Reporter: m...@ernestocastellotti.it

The DMD backend fails with this code:

import core.stdc.stdlib;

void main() {
auto foo = false && true || abort();
}

This is the error message:

core.exception.AssertError@src/dmd/backend/cod1.d(4027): Assertion failure

??:? _d_assertp [0x9884d4]
src/dmd/backend/cod1.d:4027 _Z8funccallR11CodeBuilderP4elemjjPjjb [0x8ffd32]
src/dmd/backend/cod1.d:3749 _Z6cdfuncR11CodeBuilderP4elemPj [0x8fef41]
src/dmd/backend/cgcod.d:2738 _Z7codelemR11CodeBuilderP4elemPjj [0x8f510a]
src/dmd/backend/cod2.d:2082 _Z5cdnotR11CodeBuilderP4elemPj [0x90c4d3]
src/dmd/backend/cgcod.d:2738 _Z7codelemR11CodeBuilderP4elemPjj [0x8f510a]
src/dmd/backend/cgcod.d:2868 _Z8scodelemR11CodeBuilderP4elemPjjb [0x8f555c]
src/dmd/backend/cod4.d:709 _Z4cdeqR11CodeBuilderP4elemPj [0x8bec0b]
src/dmd/backend/cgcod.d:2738 _Z7codelemR11CodeBuilderP4elemPjj [0x8f510a]
src/dmd/backend/cgen.d:198 _Z10gencodelemR11CodeBuilderP4elemPjb [0x940c65]
src/dmd/backend/cod3.d:960
_Z14outblkexitcodeR11CodeBuilderP5blockRiPKcPP6Symbolj [0x917fa3]
src/dmd/backend/cgcod.d:1455 _Z8blcodgenP5block [0x8f2efc]
src/dmd/backend/cgcod.d:291 _Z6codgenP6Symbol [0x8f059d]
src/dmd/backend/dout.d:1034 _Z10writefunc2P6Symbol [0x8a457e]
src/dmd/backend/dout.d:853 _Z9writefuncP6Symbol [0x8a3ed6]
src/dmd/glue.d:1199 _Z25FuncDeclaration_toObjFileP15FuncDeclarationb [0x842a4f]
src/dmd/toobj.d:309 _ZN9toObjFile9ToObjFile5visitEP15FuncDeclaration [0x85c1a1]
src/dmd/func.d:2991 _ZN15FuncDeclaration6acceptEP7Visitor [0x767119]
src/dmd/toobj.d:1021 _Z9toObjFileP7Dsymbolb [0x85c108]
src/dmd/glue.d:529 _Z10genObjFileP6Moduleb [0x840b71]
src/dmd/glue.d:122 void dmd.glue.generateCodeAndWrite(dmd.dmodule.Module[],
const(char)*[], const(char)[], const(char)[], bool, bool, bool, bool, bool)
[0x83f39c]
src/dmd/mars.d:582 int dmd.mars.tryMain(ulong, const(char)**, ref
dmd.globals.Param) [0x64fe08]
src/dmd/mars.d:966 _Dmain [0x651354]

LDC and GDC have no problem with this code so the problem must be related
exclusively to the DMD backend, i have no idea what could be causing it someone
with backend experience should look into it.

--


[Issue 23930] New: assert(0) passed to function with noreturn parameter causes segfault

2023-05-19 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=23930

  Issue ID: 23930
   Summary: assert(0) passed to function with noreturn parameter
causes segfault
   Product: D
   Version: D2
  Hardware: All
OS: All
Status: NEW
  Keywords: ice-on-valid-code
  Severity: normal
  Priority: P1
 Component: dmd
  Assignee: nob...@puremagic.com
  Reporter: elpenguin...@gmail.com

```
void main() {
bar(assert(0));
}
void bar(noreturn) {}
```
With DMD 2.103.0 it also prints TYvoid.

--


[Issue 23927] Missing unreachable warning after call to a noreturn function as if-condition

2023-05-19 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=23927

Basile-z  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |INVALID

--- Comment #1 from Basile-z  ---
"noreturn is the bottom type which can implicitly convert to any type"

bool in that case

--


[Issue 23929] New: in operator on noreturn associative array causes dmd crash

2023-05-19 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=23929

  Issue ID: 23929
   Summary: in operator on noreturn associative array causes dmd
crash
   Product: D
   Version: D2
  Hardware: All
OS: All
Status: NEW
  Keywords: ice-on-valid-code
  Severity: normal
  Priority: P1
 Component: dmd
  Assignee: nob...@puremagic.com
  Reporter: elpenguin...@gmail.com

A simple one-liner:
```
if (assert(0) in int[noreturn].init) {}
```

--


[Issue 23914] "auto ref" resolution on return value prevented by noreturn (bottom type)

2023-05-19 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=23914

Dlang Bot  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED

--- Comment #4 from Dlang Bot  ---
dlang/dmd pull request #15240 "Fix Issue 23914 - auto ref resolution on return
value prevented by noreturn" was merged into master:

- 883de397fb3a1405bdfaaa985abc905049c41fb0 by RazvanN7:
  Fix Issue 23914 - auto ref resolution on return value prevented by noreturn

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

--


[Issue 23927] New: Missing unreachable warning after call to a noreturn function as if-condition

2023-05-18 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=23927

  Issue ID: 23927
   Summary: Missing unreachable warning after call to a noreturn
function as if-condition
   Product: D
   Version: D2
  Hardware: All
OS: All
Status: NEW
  Keywords: accepts-invalid, diagnostic
  Severity: normal
  Priority: P1
 Component: dmd
  Assignee: nob...@puremagic.com
  Reporter: b2.t...@gmx.com

The following code compiles without warning

```
alias NR = typeof(assert(0));

NR test(){assert(0);}

void main()
{
if (test())
{
}
return;
}   
```

but there should be one on the ReturnStatement located in `main` because it is
not reachable.

The same problem can be observed if the IfStatement is replaced with a
WhileStatement.

--


[Issue 23914] "auto ref" resolution on return value prevented by noreturn (bottom type)

2023-05-16 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=23914

Dlang Bot  changed:

   What|Removed |Added

   Keywords||pull

--- Comment #3 from Dlang Bot  ---
@RazvanN7 created dlang/dmd pull request #15240 "Fix Issue 23914 - auto ref
resolution on return value prevented by noreturn" fixing this issue:

- Fix Issue 23914 - auto ref resolution on return value prevented by noreturn

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

--


[Issue 23914] "auto ref" resolution on return value prevented by noreturn (bottom type)

2023-05-12 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=23914

Vladimir Panteleev  changed:

   What|Removed |Added

Summary|"auto ref" resolution   |"auto ref" resolution on
   |prevented by bottom type|return value prevented by
   |    |noreturn (bottom type)

--


[Issue 23871] New: ImportC: __attribute((noreturn)) not recognized

2023-04-30 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=23871

  Issue ID: 23871
   Summary: ImportC: __attribute((noreturn)) not recognized
   Product: D
   Version: D2
  Hardware: All
OS: Linux
Status: NEW
  Severity: enhancement
  Priority: P1
 Component: dmd
  Assignee: nob...@puremagic.com
  Reporter: nay...@abv.bg

main.d

import xawd;

void main()
{

}


xawd.c

#include 


Errors:

/usr/include/X11/Intrinsic.h(1729): Error: no type-specifier for parameter
/usr/include/X11/Intrinsic.h(1733): Error: no type-specifier for parameter
/usr/include/X11/Intrinsic.h(1753): Error: missing comma or semicolon after
declaration of `XtAppErrorMsg`, found `__attribute` instead
/usr/include/X11/Intrinsic.h(1762): Error: missing comma or semicolon after
declaration of `XtErrorMsg`, found `__attribute` instead
/usr/include/X11/Intrinsic.h(1785): Error: no type-specifier for parameter
/usr/include/X11/Intrinsic.h(1789): Error: no type-specifier for parameter
/usr/include/X11/Intrinsic.h(1804): Error: missing comma or semicolon after
declaration of `XtAppError`, found `__attribute` instead
/usr/include/X11/Intrinsic.h(1808): Error: missing comma or semicolon after
declaration of `XtError`, found `__attribute` instead


For the first error:

extern XtErrorMsgHandler XtAppSetErrorMsgHandler(
XtAppContext/* app_context */,
XtErrorMsgHandler   /* handler */ _X_NORETURN //line 1729
);

It seems it's caused by _X_NORETURN. The other errors are also caused by it, it
seems.

For the error on line 1753:

extern void XtAppErrorMsg(
XtAppContext/* app_context */,
_Xconst _XtString   /* name */,
_Xconst _XtString   /* type */,
_Xconst _XtString   /* class */,
_Xconst _XtString   /* default */,
String* /* params */,
Cardinal*   /* num_params */
) _X_NORETURN; //line 1753



_X_NORETURN seems to be defined like this:
-
/* requires xproto >= 7.0.17 */
#if __has_attribute(noreturn) \
|| (defined(__GNUC__) && ((__GNUC__ * 100 + __GNUC_MINOR__) >= 205)) \
|| (defined(__SUNPRO_C) && (__SUNPRO_C >= 0x590))
# define _X_NORETURN __attribute((noreturn))
#else
# define _X_NORETURN
#endif /* GNUC  */
-

It seems __attribute((noreturn)) is not recognized.

Using DMD64 D Compiler v2.103.0

--


[Issue 23331] implicit cast from noreturn crashes compiler in various ways

2022-12-31 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=23331

--- Comment #3 from Dlang Bot  ---
dlang/dmd pull request #14758 "Revert "Fix Issues 23331, 23379 - fix casts
involving noreturn"" was merged into master:

- b8e9e3f29021c6f22233d489e8284165035fa5f5 by Iain Buclaw:
  Revert "Fix Issues 23331, 23379 - fix casts involving noreturn"

  This reverts commit eb3eb89664e0bc3b61e59e934b4ba0287024914e.

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

--


[Issue 23587] cast(void) doesn't work for noreturn

2022-12-31 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=23587

Dlang Bot  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED

--- Comment #7 from Dlang Bot  ---
dlang/dmd pull request #14758 "Revert "Fix Issues 23331, 23379 - fix casts
involving noreturn"" was merged into master:

- 8bf1c8dab73adb9b990be334cdde1a068cb0a71e by Iain Buclaw:
  fix Issue 23587 - cast(void) doesn't work for noreturn

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

--


[Issue 23591] [REG 2.101] Invalid casts accepted by the compiler if from type is noreturn

2022-12-31 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=23591

Dlang Bot  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED

--- Comment #2 from Dlang Bot  ---
dlang/dmd pull request #14758 "Revert "Fix Issues 23331, 23379 - fix casts
involving noreturn"" was merged into master:

- 227b3edae230a4084eacc994cf940ec4e612232b by Iain Buclaw:
  fix Issue 23591 - [REG 2.101] Invalid casts accepted by the compiler if from
type is noreturn

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

--


[Issue 23379] Cast of expressions with type noreturn result in ice

2022-12-31 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=23379

--- Comment #3 from Dlang Bot  ---
dlang/dmd pull request #14758 "Revert "Fix Issues 23331, 23379 - fix casts
involving noreturn"" was merged into master:

- b8e9e3f29021c6f22233d489e8284165035fa5f5 by Iain Buclaw:
  Revert "Fix Issues 23331, 23379 - fix casts involving noreturn"

  This reverts commit eb3eb89664e0bc3b61e59e934b4ba0287024914e.

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

--


[Issue 23587] cast(void) doesn't work for noreturn

2022-12-30 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=23587

--- Comment #6 from Iain Buclaw  ---
(In reply to artha from comment #5)
> (In reply to RazvanN from comment #3)
> > Why does it matter? The call to fun will never return so casting to void (or
> > any other value) it actually a no-op.
> 
> In this case it makes the compiler issue an unwanted warning. The cast is
> supposed to tell the compiler I'm purposefully discarding the return value.
> 

You're not wrong. cast(void) bottom is completely valid and the result should
be void.

--


[Issue 23587] cast(void) doesn't work for noreturn

2022-12-30 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=23587

--- Comment #5 from ar...@samerion.com ---
(In reply to RazvanN from comment #3)
> Why does it matter? The call to fun will never return so casting to void (or
> any other value) it actually a no-op.

In this case it makes the compiler issue an unwanted warning. The cast is
supposed to tell the compiler I'm purposefully discarding the return value.

As a workaround, I could've done this:

```
fun();
static if (!is(typeof(stuff()) == void)) {
writeln("never written");
}
```

But it's a mess, and I don't want to do that every time I call a template
delegate.

--


[Issue 23591] [REG 2.101] Invalid casts accepted by the compiler if from type is noreturn

2022-12-30 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=23591

Iain Buclaw  changed:

   What|Removed |Added

   See Also||https://issues.dlang.org/sh
   ||ow_bug.cgi?id=23587

--


[Issue 23587] cast(void) doesn't work for noreturn

2022-12-30 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=23587

Iain Buclaw  changed:

   What|Removed |Added

   See Also||https://issues.dlang.org/sh
   ||ow_bug.cgi?id=23591

--


[Issue 23587] cast(void) doesn't work for noreturn

2022-12-30 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=23587

--- Comment #4 from Iain Buclaw  ---
(In reply to RazvanN from comment #3)
> Why does it matter? The call to fun will never return so casting to void (or
> any other value) it actually a no-op.
The devils in the detail of the change, not the example code in this bug
report.  By blowing a hole in the type system has opened up the flood gates to
even worse abominations being accepted.

--


[Issue 23591] [REG 2.101] Invalid casts accepted by the compiler if from type is noreturn

2022-12-30 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=23591

Dlang Bot  changed:

   What|Removed |Added

   Keywords||pull

--- Comment #1 from Dlang Bot  ---
@ibuclaw updated dlang/dmd pull request #14758 "Revert "Fix Issues 23331, 23379
- fix casts involving noreturn"" fixing this issue:

- fix Issue 23591 - [REG 2.101] Invalid casts accepted by the compiler if from
type is noreturn

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

--


[Issue 23591] [REG 2.101] Invalid casts accepted by the compiler if from type is noreturn

2022-12-30 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=23591

Iain Buclaw  changed:

   What|Removed |Added

   Keywords||accepts-invalid
 CC||ibuc...@gdcproject.org

--


[Issue 23591] New: [REG 2.101] Invalid casts accepted by the compiler if from type is noreturn

2022-12-30 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=23591

  Issue ID: 23591
   Summary: [REG 2.101] Invalid casts accepted by the compiler if
from type is noreturn
   Product: D
   Version: D2
  Hardware: All
OS: All
Status: NEW
  Severity: regression
  Priority: P1
 Component: dmd
  Assignee: nob...@puremagic.com
  Reporter: ibuc...@gdcproject.org

This nonsense is compilable.
---
noreturn square(int x);

int example(int i)
{
int x = cast(string)square(i);
int y = cast(real function(char))assert(0);
return x + y;
}
---

Introduced by https://github.com/dlang/dmd/pull/14494

--


[Issue 23587] cast(void) doesn't work for noreturn

2022-12-30 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=23587

RazvanN  changed:

   What|Removed |Added

 CC||razvan.nitu1...@gmail.com

--- Comment #3 from RazvanN  ---
Why does it matter? The call to fun will never return so casting to void (or
any other value) it actually a no-op.

--


[Issue 23587] cast(void) doesn't work for noreturn

2022-12-29 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=23587

Iain Buclaw  changed:

   What|Removed |Added

   Keywords||rejects-valid

--


[Issue 23587] cast(void) doesn't work for noreturn

2022-12-29 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=23587

Dlang Bot  changed:

   What|Removed |Added

   Keywords||pull

--- Comment #2 from Dlang Bot  ---
@ibuclaw updated dlang/dmd pull request #14758 "Revert "Fix Issues 23331, 23379
- fix casts involving noreturn"" fixing this issue:

- fix Issue 23587 - cast(void) doesn't work for noreturn

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

--


[Issue 23331] implicit cast from noreturn crashes compiler in various ways

2022-12-29 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=23331

--- Comment #2 from Dlang Bot  ---
@ibuclaw created dlang/dmd pull request #14758 "Revert "Fix Issues 23331, 23379
- fix casts involving noreturn"" mentioning this issue:

- Revert "Fix Issues 23331, 23379 - fix casts involving noreturn"

  This reverts commit eb3eb89664e0bc3b61e59e934b4ba0287024914e.

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

--


[Issue 23379] Cast of expressions with type noreturn result in ice

2022-12-29 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=23379

--- Comment #2 from Dlang Bot  ---
@ibuclaw created dlang/dmd pull request #14758 "Revert "Fix Issues 23331, 23379
- fix casts involving noreturn"" mentioning this issue:

- Revert "Fix Issues 23331, 23379 - fix casts involving noreturn"

  This reverts commit eb3eb89664e0bc3b61e59e934b4ba0287024914e.

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

--


[Issue 23331] implicit cast from noreturn crashes compiler in various ways

2022-12-29 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=23331

Iain Buclaw  changed:

   What|Removed |Added

   Keywords||backend
 Status|RESOLVED|REOPENED
 CC||ibuc...@gdcproject.org
 Resolution|FIXED   |---

--


[Issue 23379] Cast of expressions with type noreturn result in ice

2022-12-29 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=23379

Iain Buclaw  changed:

   What|Removed |Added

   Keywords||backend
 Status|RESOLVED|REOPENED
 Resolution|FIXED   |---

--


[Issue 23587] cast(void) doesn't work for noreturn

2022-12-29 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=23587

Iain Buclaw  changed:

   What|Removed |Added

 CC||ibuc...@gdcproject.org

--- Comment #1 from Iain Buclaw  ---
I suspect introduced by https://github.com/dlang/dmd/pull/14494

--


[Issue 23587] New: cast(void) doesn't work for noreturn

2022-12-28 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=23587

  Issue ID: 23587
   Summary: cast(void) doesn't work for noreturn
   Product: D
   Version: D2
  Hardware: x86_64
OS: Linux
Status: NEW
  Severity: regression
  Priority: P1
 Component: dmd
  Assignee: nob...@puremagic.com
  Reporter: ar...@samerion.com

```
noreturn stuff() {
assert(false);
}

void doStuff(alias fun)() {

// This is a template, so I don't want to have to care about noreturn
cast(void) fun();
writeln("never written");

// Should output "void"
pragma(msg, typeof(cast(void) fun()));

}

void main() {
doStuff!stuff();
}
```

Starting with DMD 2.101, the pragma in the above example outputs "noreturn"
rather than the expected "void" and issues "Warning: statement is not
reachable".

--


[Issue 16222] empty array literal should have type noreturn[]

2022-12-17 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=16222

--- Comment #3 from Nick Treleaven  ---
> we need a typeof([]) that implicitly converts to any T[] (unlike void[]).

That would be `noreturn[]`:
https://github.com/dlang/DIPs/blob/master/DIPs/accepted/DIP1034.md#the-type-of-the-empty-array-literal

--


[Issue 21954] stack corruption on if stmt taking a noreturn array elem as condition

2022-12-17 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=21954

Iain Buclaw  changed:

   What|Removed |Added

   Priority|P1  |P3

--


[Issue 16222] empty array literal should have type noreturn[]

2022-12-17 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=16222

Iain Buclaw  changed:

   What|Removed |Added

   Priority|P1  |P3

--


[Issue 23439] [REG 2.098] Error: CTFE internal error: literal 'assert(false, "Accessed expression of type noreturn")'

2022-11-01 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=23439

--- Comment #3 from Dlang Bot  ---
dlang/dmd pull request #14609 "merge stable" was merged into master:

- 048be135480126ff0a8ff9ac48dc11ab22e84c3b by Iain Buclaw:
  fix Issue 23439 - [REG 2.098] Error: CTFE internal error: literal
'assert(false, "Accessed expression of type noreturn")' (#14596)

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

--


[Issue 23439] [REG 2.098] Error: CTFE internal error: literal 'assert(false, "Accessed expression of type noreturn")'

2022-10-27 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=23439

Dlang Bot  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED

--- Comment #2 from Dlang Bot  ---
dlang/dmd pull request #14596 "fix Issue 23439 - [REG 2.098] Error: CTFE
internal error: literal 'assert(false, "Accessed expression of type
noreturn")'" was merged into stable:

- 5a060be19cd4c513693b4d1f8e0deb27b7bacc31 by Iain Buclaw:
  fix Issue 23439 - [REG 2.098] Error: CTFE internal error: literal
'assert(false, "Accessed expression of type noreturn")'

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

--


[Issue 23439] [REG 2.098] Error: CTFE internal error: literal 'assert(false, "Accessed expression of type noreturn")'

2022-10-26 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=23439

Dlang Bot  changed:

   What|Removed |Added

   Keywords||pull

--- Comment #1 from Dlang Bot  ---
@ibuclaw created dlang/dmd pull request #14596 "fix Issue 23439 - [REG 2.098]
Error: CTFE internal error: literal 'assert(false, "Accessed expression of type
noreturn")'" fixing this issue:

- fix Issue 23439 - [REG 2.098] Error: CTFE internal error: literal
'assert(false, "Accessed expression of type noreturn")'

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

--


[Issue 23439] New: [REG 2.098] Error: CTFE internal error: literal 'assert(false, "Accessed expression of type noreturn")'

2022-10-26 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=23439

  Issue ID: 23439
   Summary: [REG 2.098] Error: CTFE internal error: literal
'assert(false, "Accessed expression of type
    noreturn")'
   Product: D
   Version: D2
  Hardware: All
OS: All
Status: NEW
  Severity: regression
  Priority: P1
 Component: dmd
  Assignee: nob...@puremagic.com
  Reporter: ibuc...@gdcproject.org

Introduced by: https://github.com/dlang/dmd/pull/13142
---
class BasicClass
{
    noreturn noRet;
}

__gshared basic = new BasicClass();

--


[Issue 23331] implicit cast from noreturn crashes compiler in various ways

2022-10-02 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=23331

RazvanN  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 CC||razvan.nitu1...@gmail.com
 Resolution|--- |FIXED

--


[Issue 23379] Cast of expressions with type noreturn result in ice

2022-10-02 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=23379

RazvanN  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED

--


[Issue 23331] implicit cast from noreturn crashes compiler in various ways

2022-09-30 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=23331

Dlang Bot  changed:

   What|Removed |Added

   Keywords||pull

--- Comment #1 from Dlang Bot  ---
@RazvanN7 updated dlang/dmd pull request #14494 "Fix Issues 23331, 23379 - fix
casts involving noreturn" fixing this issue:

- Fix Issues 23331, 23379 - fix casts involving noreturn

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

--


[Issue 23379] Cast of expressions with type noreturn result in ice

2022-09-30 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=23379

Dlang Bot  changed:

   What|Removed |Added

   Keywords||pull

--- Comment #1 from Dlang Bot  ---
@RazvanN7 updated dlang/dmd pull request #14494 "Fix Issues 23331, 23379 - fix
casts involving noreturn" fixing this issue:

- Fix Issues 23331, 23379 - fix casts involving noreturn

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

--


[Issue 23379] Cast of expressions with type noreturn result in ice

2022-09-28 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=23379

RazvanN  changed:

   What|Removed |Added

   Severity|enhancement |critical

--


[Issue 23379] New: Cast of expressions with type noreturn result in ice

2022-09-28 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=23379

  Issue ID: 23379
   Summary: Cast of expressions with type noreturn result in ice
   Product: D
   Version: D2
  Hardware: x86_64
OS: Linux
Status: NEW
  Severity: enhancement
  Priority: P1
 Component: dmd
  Assignee: nob...@puremagic.com
  Reporter: razvan.nitu1...@gmail.com

void main()
{
 auto b = cast(double)(assert(0));   
}

--


[Issue 23331] New: implicit cast from noreturn crashes compiler in various ways

2022-09-10 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=23331

  Issue ID: 23331
   Summary: implicit cast from noreturn crashes compiler in
various ways
   Product: D
   Version: D2
  Hardware: x86_64
OS: Linux
Status: NEW
  Severity: critical
  Priority: P1
 Component: dmd
  Assignee: nob...@puremagic.com
  Reporter: ajiesk...@gmail.com

Defining any of these three functions in latest master will crash the compiler:


auto fun(){return double(new noreturn[](0)[0]);}
auto gun(){return double(assert(0));}
auto hun(){return int(assert(0));}


The underlying reason may or may not be same, since a different assertion trips
in the compiler for each, located in different a source file for each of them.

--


[Issue 16222] empty array literal should have type noreturn[]

2022-09-05 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=16222

Nick Treleaven  changed:

   What|Removed |Added

 CC||n...@geany.org
Summary|template failed to  |empty array literal should
   |infer/coerce types for  |have type noreturn[]
   |instantiation   |

--


[Issue 21956] ice on foreach over an AA of noreturn

2022-07-12 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=21956

Dlang Bot  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED

--- Comment #6 from Dlang Bot  ---
dlang/dmd pull request #14274 "Fix Issue 21956 - ice on foreach over an AA of
noreturn" was merged into master:

- 52bb3f701e18dd393065aa3184f1b8ef4bf5690a by RazvanN7:
  Fix Issue 21956 - ice on foreach over an AA of noreturn

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

--


[Issue 23114] Can't use noreturn operand in arithmetic expression

2022-07-09 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=23114

--- Comment #5 from Dlang Bot  ---
dlang/dmd pull request #14280 "merge stable" was merged into master:

- dbe0600f853466992fe8f3c3f684f520f6a15883 by mhh:
  Fix Issue 23114 - Make noreturn conversions work

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

--


[Issue 21956] ice on foreach over an AA of noreturn

2022-07-08 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=21956

Dlang Bot  changed:

   What|Removed |Added

   Keywords||pull

--- Comment #5 from Dlang Bot  ---
@RazvanN7 created dlang/dmd pull request #14274 "Fix Issue 21956 - Issue 21956
- ice on foreach over an AA of noreturn" fixing this issue:

- Fix Issue 21956 - Issue 21956 - ice on foreach over an AA of noreturn

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

--


[Issue 23206] ImportC: __declspec(noreturn) does not compile

2022-06-25 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=23206

Dlang Bot  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED

--- Comment #4 from Dlang Bot  ---
dlang/dmd pull request #14252 "fix Issue 23206 - ImportC: __declspec(noreturn)
does not compile" was merged into master:

- 9df64451e42743b92cc46cf99b0742eed3382125 by Walter Bright:
  fix Issue 23206 - ImportC: __declspec(noreturn) does not compile

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

--


[Issue 23206] ImportC: __declspec(noreturn) does not compile

2022-06-25 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=23206

Dlang Bot  changed:

   What|Removed |Added

   Keywords||pull

--- Comment #3 from Dlang Bot  ---
@WalterBright created dlang/dmd pull request #14252 "fix Issue 23206 - ImportC:
__declspec(noreturn) does not compile" fixing this issue:

- fix Issue 23206 - ImportC: __declspec(noreturn) does not compile

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

--


[Issue 23206] ImportC: __declspec(noreturn) does not compile

2022-06-25 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=23206

Walter Bright  changed:

   What|Removed |Added

Summary|ImportC: errors compiling   |ImportC:
   |VC .h files that   |__declspec(noreturn) does
   |relies on   |not compile

--


[Issue 23063] It is possible to return a noreturn value

2022-06-09 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=23063

Dlang Bot  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED

--- Comment #2 from Dlang Bot  ---
dlang/dmd pull request #14187 "Fix Issue 23063 - It is possible to return a
noreturn value" was merged into master:

- 8a0812895ccfabcdee31f2140c203367ccee5e97 by RazvanN7:
  Fix Issue 23063 - It is possible to return a noreturn value

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

--


[Issue 23063] It is possible to return a noreturn value

2022-06-06 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=23063

Dlang Bot  changed:

   What|Removed |Added

   Keywords||pull

--- Comment #1 from Dlang Bot  ---
@RazvanN7 created dlang/dmd pull request #14187 "Fix Issue 23063 - It is
possible to return a noreturn value" fixing this issue:

- Fix Issue 23063 - It is possible to return a noreturn value

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

--


[Issue 23114] Can't use noreturn operand in arithmetic expression

2022-05-27 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=23114

Dlang Bot  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED

--- Comment #4 from Dlang Bot  ---
dlang/dmd pull request #14134 "Fix Issue 23114 - Make noreturn conversions
work" was merged into stable:

- 8d9c0a33cecc5ff281659962a723f18a7bfd168f by mhh:
  Fix Issue 23114 - Make noreturn conversions work

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

--


[Issue 23114] Can't use noreturn operand in arithmetic expression

2022-05-27 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=23114

--- Comment #3 from Dlang Bot  ---
@maxhaton updated dlang/dmd pull request #14091 "Fix Issue 23088 - This bug is
a symptom of a bad error message." fixing this issue:

- Fix Issue 23114 - Make noreturn conversions work

  This meant adding the correct implicit conversions to the table in
  impcnvtab.d

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

--


  1   2   3   4   5   >