mirror of
https://github.com/dlang/dmd.git
synced 2025-04-26 21:21:48 +03:00

This makes the following changes: - Add template `_d_newclassT` to `druntime.src.core.lifetime.d` - Replace lowering of `new C()` to `_d_newclassT!C()` - Add `lowering` member to `NewExp`. This field stores the above lowering to be used by e2ir.d - Keep the old `_d_newclass` hook because it's used by `TypeInfo_Class.create()` - Add dummy `_d_newclassT` hook to tests that redefine the `object` module - Remove `new MinHeap!(TestType)()` from `fail308.d`. Otherwise the errror was changed and printed the local path to druntime - Move `err` to global scope in rt.sections.d to avoid the frontend lowering - Account for the `GC.malloc()` called by the template hook in the `-profile=gc` tests Signed-off-by: Teodor Dutu <teodor.dutu@gmail.com> Signed-off-by: Teodor Dutu <teodor.dutu@gmail.com>
23 lines
359 B
D
23 lines
359 B
D
// https://issues.dlang.org/show_bug.cgi?id=23433
|
|
module object;
|
|
|
|
class Throwable { }
|
|
class Exception : Throwable { this(immutable(char)[]) { } }
|
|
|
|
// Needed to lower `new Exception("ice")` to it.
|
|
T _d_newclassT(T)()
|
|
if (is(T == class))
|
|
{
|
|
return null;
|
|
}
|
|
|
|
void test23433()
|
|
{
|
|
try
|
|
{
|
|
throw new Exception("ice");
|
|
}
|
|
finally
|
|
{
|
|
}
|
|
}
|