Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
265 commits
Select commit Hold shift + click to select a range
debd316
[dmodule.d] make `Module.cov` a `void*`
thewilsonator Jul 21, 2025
41894d3
[dmodule.d] make `Module.sictor` a `void*`
thewilsonator Jul 21, 2025
75a7592
[dmodule.d] make other backend symbol `void*`
thewilsonator Jul 21, 2025
085c234
Use AA for `cpp_type_info_ptr_sym` cache
thewilsonator Jul 12, 2025
6aca07f
restore asm implementation in mulu, avoid inline warning by local fun…
rainers Jul 22, 2025
cd323e8
fix `frontend.h`
thewilsonator Jul 22, 2025
0d3c5a1
[dstruct.d] remove some unused semantic imports
thewilsonator Jul 23, 2025
90c7c58
Remove some unused `import dmd.globals;`
thewilsonator Jul 23, 2025
4f57539
[dstruct.d] move `determineTypeProperties` to `typesem.d` (dlang/dmd!…
thewilsonator Jul 23, 2025
f71fff7
Make `Dysmbol.size()` return a `ulong` (dlang/dmd!21582)
thewilsonator Jul 23, 2025
6266f08
[mtype.d] move `resolveNamedArgs` to `typesem.d` (dlang/dmd!21584)
thewilsonator Jul 23, 2025
75eb41b
don't pretend dmd can inline checkint.mulu, just let it decide itself
rainers Jul 24, 2025
57cec41
Refactor `_d_arrayliteralTX` (dlang/dmd!21573)
Albert24GG Jul 25, 2025
024e98a
Move `search_toString` to `semantic3` (dlang/dmd!21590)
thewilsonator Jul 25, 2025
178b99c
[funcsem.d] make some function `private` and restrict import (dlang/d…
thewilsonator Jul 25, 2025
234c07a
Move `checkNestedFuncReference` to `expressionsem.d` (dlang/dmd!21592)
thewilsonator Jul 26, 2025
e9f687f
Move `Module.checkImportDeprecation` to dsymbolsem (dlang/dmd!21601)
thewilsonator Jul 26, 2025
c4cf668
move `Type.isAssignable` to `typesem.d` (dlang/dmd!21602)
thewilsonator Jul 26, 2025
2196ebf
[dtemplate.d] remove some semantic imports (dlang/dmd!21589)
thewilsonator Jul 26, 2025
16116d3
Move `IndexExp.markSettingAAElem` into expressionsem (dlang/dmd!21600)
thewilsonator Jul 26, 2025
c2f9511
[expressionsem.d] restirct some `typesem` imports (dlang/dmd!21593)
thewilsonator Jul 26, 2025
3d75ddd
fix dlang/dmd!21605 test suite null deref in bug19652.d (dlang/dmd!21…
thewilsonator Jul 27, 2025
0a41c69
[dscope.d] compress some flags (dlang/dmd!21570)
thewilsonator Jul 27, 2025
ad4cb3d
Fix dlang/dmd!21615 - The GC expandArrayUsed has pathological behavio…
schveiguy Jul 28, 2025
20fd90b
Fix some null deferences in the test suite (dlang/dmd!21617)
thewilsonator Jul 29, 2025
df0f823
fix null deref in test suite (dlang/dmd!21621)
thewilsonator Jul 30, 2025
a80eae1
druntime, Musl, MIPS_O32: Fix size of stat_t.st_dev (dlang/dmd!21641)
the-horo Aug 3, 2025
acec2a6
druntime, musl: Remove unused __USE_FILE_OFFSET64 bindings
ibuclaw Aug 3, 2025
1dc0b62
druntime, musl: Fix padding of sched_param (dlang/dmd!21640)
the-horo Aug 3, 2025
9d9671f
fix dlang/dmd!21630: `enum` and `alias` ignored on runtime foreach lo…
tgehr Aug 1, 2025
f3c4376
druntime, posix: Add bindings for POSIX endian.h (dlang/dmd!21644)
ibuclaw Aug 4, 2025
7409f0a
Tweak & add tests for foreach sequence parameter errors (dlang/dmd!2…
ntrel Aug 4, 2025
ddb5cfb
Fix ICE/missing error with wrong foreach type sequence parameter (dla…
ntrel Aug 4, 2025
c9b8c9b
fix dlang/dmd!20473 - Struct with both bitfields and a slice or class…
ibuclaw Aug 5, 2025
55eab62
fix github Issue 18247 Bitfield with 64 bits always zero (dlang/dmd!2…
WalterBright Aug 6, 2025
04da9b1
move-deducetype-functions-to-templatesem.d (dlang/dmd!21579)
gorsing Aug 6, 2025
beea443
[dtemplate.d] remove some unused semantic imports (dlang/dmd!21654)
thewilsonator Aug 6, 2025
0cffc12
make inlineAsmAArch64Semantic() a bit more understandable (dlang/dmd!…
WalterBright Aug 6, 2025
cc42025
fix dlang/dmd!21660 - Error overlapping initialization for D bit-fiel…
ibuclaw Aug 6, 2025
a114a20
replace AA runtime hooks with templated implementation (dlang/dmd!21066)
rainers Aug 6, 2025
fa6b353
fix dlang/dmd!21663 - Bit-fields missing from DWARF debug info (dlang…
ibuclaw Aug 6, 2025
7870b35
fix dlang/dmd!18101 wrong code generated for bitfield assignment to ?…
WalterBright Aug 7, 2025
86957f9
fix dlang/dmd!21665: Incorrect CodeView debug info for bitfields (dla…
rainers Aug 7, 2025
51d00b3
[dtemplate.d] move `deduceWildHelper` to `templatesem.d` (dlang/dmd!2…
thewilsonator Aug 7, 2025
e43c042
rename bit-field to bitfield (dlang/dmd!21669)
WalterBright Aug 8, 2025
0c99d38
[dtemplate.d] move `TemplateInstance_semanticTiargs` to `templatesem.…
thewilsonator Aug 8, 2025
7fc1e9a
Fix null deference in code in `test/unit/frontend.d` (dlang/dmd!21671)
thewilsonator Aug 8, 2025
a5bf9b3
replace e with eorig (dlang/dmd!21673)
WalterBright Aug 8, 2025
f7c86ef
Update `_d_arrayctor` branches to improve performance (dlang/dmd!21675)
Albert24GG Aug 8, 2025
b036d11
importC: Reject conditional expressions as lvalues (dlang/dmd!21678)
ibuclaw Aug 9, 2025
bd875cb
[foreachvar.d] make visitors accept `scope delegate` (dlang/dmd!21672)
thewilsonator Aug 9, 2025
35663d3
[func.d] move `isUnique` to `funcsem.d` (dlang/dmd!21658)
thewilsonator Aug 9, 2025
dadee0f
Packagise the glue layer into `glue/` (dlang/dmd!21572)
thewilsonator Aug 9, 2025
f9cb782
[declaration.d] move `getConstInitializer` (dlang/dmd!21659)
thewilsonator Aug 9, 2025
22486c2
use default args instead of multiple functions (dlang/dmd!21677)
WalterBright Aug 9, 2025
5e1ef46
fix dlang/dmd!21679 - ImportC: Handle C code tokens in gcc-style iasm…
ibuclaw Aug 9, 2025
d0c633d
[dstruct.d] remove semantic imports (dlang/dmd!21680)
thewilsonator Aug 9, 2025
d34f345
move `findBestMatch` and `getConstraintEvalError` to `templatesem.d` …
thewilsonator Aug 9, 2025
44c8d66
importC: add asm flags for inline and volatile qualifiers (dlang/dmd!…
ibuclaw Aug 9, 2025
eade9fc
[dstruct.d] remove semantic imports (dlang/dmd!21657)
thewilsonator Aug 9, 2025
eaed813
fix dlang/dmd!18018 goto across assignment to AA fails and reports fa…
rainers Aug 9, 2025
cf45c74
dmd.dmodule: Remove unused Module.find function (dlang/dmd!21687)
ibuclaw Aug 9, 2025
1203e66
dmd.file_manager: Lower priority of imports found on local path (dlan…
ibuclaw Aug 9, 2025
eb80f6a
fix dlang/dmd!20114 AA in operator does not work with static if (dlan…
rainers Aug 9, 2025
818b994
fix 21693 - __rvalue ignored with component expressions (dlang/dmd!21…
ibuclaw Aug 10, 2025
11aa710
fix dlang/dmd!21690 ICE when statically initializing a multidimension…
rainers Aug 10, 2025
9b94804
fix dlang/dmd!20365 - Bitfield address escapes through ref (dlang/dmd…
ibuclaw Aug 11, 2025
1a76612
Account for lowering during post-order visit on `CatExp` (dlang/dmd!2…
Albert24GG Aug 11, 2025
00edba8
fix some misc test suite null pointer usage (dlang/dmd!21698)
thewilsonator Aug 11, 2025
32bdd95
add test for dlang/dmd!17487 Associative arrays do not correctly hand…
rainers Aug 11, 2025
f2a0ae8
[dtemplate.d] remove depeneance on `toDsymbol` (dlang/dmd!21684)
thewilsonator Aug 11, 2025
b29ea79
Add missing exception handling in `_d_arrayappendT` (dlang/dmd!21699)
Albert24GG Aug 11, 2025
0b10ff3
[dtemplate.d] move `findTempDecl` to `dsymbolsem` (dlang/dmd!21703)
thewilsonator Aug 11, 2025
4419c58
Generated foreach-body functions: Fix index when NOT using size_t
kinke Aug 11, 2025
a3de902
[dtemplate.d] move `matchArg` to `templatesem.d` (dlang/dmd!21708)
thewilsonator Aug 13, 2025
a312151
[dmodule.d] remove unused semantic import (dlang/dmd!21713)
thewilsonator Aug 13, 2025
77a5266
Fix dlang/dmd!20184 - ImportC recognizes .i and .c files, but not .h …
ibuclaw Aug 13, 2025
f1869c0
[dtemplate.d] move `defaultArg` to `templatesem.d` (dlang/dmd!21711)
thewilsonator Aug 13, 2025
bf58055
[mtype.d] move `defaultInitLiteral` to `typesem.d` (dlang/dmd!21712)
thewilsonator Aug 13, 2025
ca16228
improve error message for bad size/type (dlang/dmd!21716)
Emmankoko Aug 13, 2025
db59fc4
[dtemplate.d] move `updateTempDecl` to `templatesem.d` (dlang/dmd!21714)
thewilsonator Aug 13, 2025
e412d56
importC: Fix grammar for constant expressions (dlang/dmd!21719)
ibuclaw Aug 13, 2025
aeb8290
[dsymbol.d] move `followInstantiationContext`/`toParentP` to `dsymbol…
thewilsonator Aug 14, 2025
420b6af
cparse: Cleanup implementation of cparseCastExp (dlang/dmd!21722)
ibuclaw Aug 14, 2025
b491454
cparse: Replace isTypeName with startsTypeName
ibuclaw Aug 14, 2025
64fc648
cparse: Replace isCDeclaration with startsDeclaration (dlang/dmd!21724)
ibuclaw Aug 15, 2025
aa438e4
ImportC: Add more include hints for common symbol names (dlang/dmd!21…
ibuclaw Aug 16, 2025
838f19b
Refactor `_d_cast` (dlang/dmd!21727)
Albert24GG Aug 17, 2025
29abfc9
cli: Add ddoc documentation of for the -I option (dlang/dmd!21728)
ibuclaw Aug 18, 2025
9cb5c6c
druntime: Remove FreeBSD 14+ qsort_r compat as it breaks GDC (dlang/d…
ibara Aug 18, 2025
ce048b3
getcontext return status check added (dlang/dmd!20921)
denizzzka Aug 18, 2025
ebf5fbb
[dclass.d] move `ClassDeclaration.findFunc` to `semantic2.d` (dlang/d…
thewilsonator Aug 18, 2025
9ba126b
[dclass.d] move `fillVtbl` to `dsymbolsem.d` (dlang/dmd!21734)
thewilsonator Aug 19, 2025
a57ce45
[dtemplate.d] move `match` to `templatesem.d` (dlang/dmd!21735)
thewilsonator Aug 19, 2025
f3b568d
[dtemplate.d] move `equalsx` to `templatesem.d` (dlang/dmd!21736)
thewilsonator Aug 19, 2025
e3c3a15
[dtemplate.d] move `semanticTiargs` to `templatesem.d` (dlang/dmd!21737)
thewilsonator Aug 19, 2025
9dcc91a
ImportC: Use the location of the declarator ident for dsymbols (dlang…
ibuclaw Aug 19, 2025
751590e
druntime-test: memoryerror_stackoverflow try harder to avoid optimiza…
the-horo Aug 19, 2025
b398b3c
fix dlang/dmd!21745 - ImportC: __func__ is not generated if reference…
ibuclaw Aug 20, 2025
fd126ca
lexer: Remove dead UCN branch (dlang/dmd!21743)
ibuclaw Aug 20, 2025
b8a0f2c
pragma(mangle): Allow all characters in mangle string except null (dl…
ibuclaw Aug 20, 2025
f082e45
parser: Promote dangling else warning to error (dlang/dmd!21739)
ibuclaw Aug 20, 2025
57dafb6
errors: Give better names to the main diagnostic entrypoints (dlang/d…
ibuclaw Aug 20, 2025
abf7589
inline: Send all diagnostics through errorSink (dlang/dmd!21752)
ibuclaw Aug 20, 2025
efa6b18
dtoh: Send all diagnostics through errorSink (dlang/dmd!21751)
ibuclaw Aug 20, 2025
b65a1d5
[timetrace] extend tracing to templates and functions (dlang/dmd!21755)
thewilsonator Aug 21, 2025
96bccaa
[dclass.d] deduplicate logic for checking reserved classes (dlang/dmd…
thewilsonator Aug 21, 2025
85b1290
Fix issue dlang/dmd!21744 - ImportC: four-digit UCN identifiers \unnn…
rikkimax Aug 22, 2025
131e3d6
fix dlang/dmd!21757: MS Linker may fail on 32 bit debug builds: stack…
rainers Aug 22, 2025
f4a7784
lexer: Factor out identifier lexing into its own function (dlang/dmd!…
ibuclaw Aug 22, 2025
01c029f
expressionsem: Promote truncating conversion warning to error (dlang/…
ibuclaw Aug 22, 2025
2db0e6d
reduce some indentation in `declaration.d` (dlang/dmd!21763)
thewilsonator Aug 23, 2025
70eaa34
fix dlang/dmd!21718 - _Alignas specifiers cannot reduce alignment of …
ibuclaw Aug 24, 2025
fb94676
Move `MATCHpair` to `templatesem.d` and make functions private (dlang…
thewilsonator Aug 24, 2025
e50a771
fix dlang/dmd!17462 object.require modifies AA before populating valu…
rainers Aug 24, 2025
020993c
druntime: Adapt OpenBSD to opaque stdio, new for OpenBSD 7.8 (dlang/d…
ibara Aug 24, 2025
b1df691
avoid azure timeouts (dlang/dmd!21767)
rainers Aug 24, 2025
c2a0dc5
[druntime]: Fix sys.posix.sys.types.nlink_t definition (dlang/dmd!21770)
the-horo Aug 24, 2025
b3ef632
Importc: fix glibc aarch64 math.h (dlang/dmd!21772)
the-horo Aug 24, 2025
5020ec0
[druntime]: Fix posix.sys.shm.shmid_ds on (some) non-x86_64 (dlang/dm…
the-horo Aug 24, 2025
c78c4ff
fix dlang/dmd!17804 multi-dimensional AA is not an initializer (dlang…
rainers Aug 24, 2025
5a67ff8
globals: Rename gaggedWarnings to gaggedDeprecations
ibuclaw Aug 25, 2025
9f25cd0
errors: Give better names to private diagnostic routines
ibuclaw Aug 25, 2025
d17953b
[rootobject.d] remove equals method (dlang/dmd!21768)
thewilsonator Aug 26, 2025
dba9ab8
[dmodule.d] remove unused import (dlang/dmd!21784)
thewilsonator Aug 26, 2025
9622d9b
[dsymbolsem.d] reduce indentation in `oneMembers` (dlang/dmd!21786)
thewilsonator Aug 26, 2025
87cd07a
[dsymbolsem.d] simplify logic for `isAliasSeq` (dlang/dmd!21787)
thewilsonator Aug 26, 2025
0e23635
druntime-test: Detect musl more robustly
the-horo Aug 19, 2025
d946192
[mtype.d] Devirtualise `Type.equals` (dlang/dmd!21785)
thewilsonator Aug 27, 2025
81cd368
add dmd/targetcompiler.d (dlang/dmd!21776)
WalterBright Aug 27, 2025
e51e146
add Apple predefined version to cover OSX, iOS, TVOS, WatchOS and Vis…
WalterBright Aug 27, 2025
b62827d
incorporate bitfields (dlang/dmd!21625)
WalterBright Aug 27, 2025
28a32b1
Fix 19788 - parameters inherit function UDAs (dlang/dmd!21796)
dkorpel Aug 30, 2025
27307d0
[doc.d] move public interface to top of file (dlang/dmd!21792)
thewilsonator Aug 30, 2025
5edb2d6
druntime: set __USE_FILE_OFFSET64=true for musl
sertonix Apr 16, 2025
1804ec6
druntime: fix timespec size on musl
sertonix Apr 16, 2025
5f6ee3c
druntime: fix stat_t on arm/x86/mips musl
sertonix Apr 16, 2025
7f7b1e1
Fill in missing unwind info for MIPS
naydef Sep 1, 2025
1d0b7a2
[expression.d] use early return in `StringExpresssion.compare`
thewilsonator Sep 2, 2025
731e7c9
refactoring unused imports (dlang/dmd!21612)
gorsing Sep 2, 2025
e5d508f
druntime: Fix build error on Darwin Powerpc
ibuclaw Sep 2, 2025
d7ef223
fix __va_list_tag problem with OSX AArch64
WalterBright Sep 3, 2025
eae32d4
core.osthread: Remove Thread.m_reg for version OSX
ibuclaw Sep 3, 2025
539b191
fix dlang/dmd!21813 : ImporC does not support `_declspec` with one un…
thewilsonator Sep 5, 2025
f91dd5d
fix dlang/dmd!18614 RTInfo generation can fail for structs defined in…
rainers Sep 5, 2025
74fda89
[dmd/hdrgen] Don't output `__ctor` for `TemplateInstance` (dlang/dmd!…
ntrel Sep 5, 2025
68b7b37
Revert "core.osthread: Remove Thread.m_reg for version OSX"
ibuclaw Sep 5, 2025
c9e2ba9
core.thread: Add getter for Darwin/Windows m_reg
ibuclaw Sep 5, 2025
cc673cc
druntime/test: Remove gc/forkgc2.d test
ibuclaw Sep 6, 2025
546f945
Merge pull request dlang/dmd!21822 from ibuclaw/thread_saved_regs
schveiguy Sep 7, 2025
d3c4c99
druntime: Restore support for valloc-based OS allocation strategy (dl…
ibuclaw Sep 11, 2025
a720a07
druntime: Unblock GC signals in the GC atfork prepare handler (dlang/…
ibuclaw Sep 11, 2025
6d048e8
druntime: Add unistd and atfile definitions for IEEE Std 1003.1-2024 …
ibuclaw Sep 11, 2025
fca6be4
Deprecate returning non-zero CT constant from `opApply` (dlang/dmd!21…
ntrel Sep 11, 2025
2cb7ec8
[expression.d] use some early returns (dlang/dmd!21805)
thewilsonator Sep 11, 2025
5ac7edc
druntime: Move unblockGCSignals to core.internal.gc.os (dlang/dmd!21847)
ibuclaw Sep 11, 2025
4dfb287
[dtemplate.d] remove a label in `hasNestedArgs` (dlang/dmd!21849)
thewilsonator Sep 12, 2025
7b61b1a
[dtemplate.d] further clean up hasNestedArgs (dlang/dmd!21850)
thewilsonator Sep 12, 2025
90dca44
Add info for string mixin statement parse error (dlang/dmd!21851)
ntrel Sep 12, 2025
f51f01a
[ctfeexpr.d] remove use of `goto`s (dlang/dmd!21853)
thewilsonator Sep 12, 2025
3a89b53
druntime: Add missing pthread constants on Bionic and Musl runtimes (…
ibuclaw Sep 12, 2025
80ded68
druntime: Add thread_cancelDisable and thread_cancelRestore hooks (dl…
ibuclaw Sep 13, 2025
f917220
[common/file.d] remove use of `goto`s (dlang/dmd!21854)
thewilsonator Sep 13, 2025
205cb2e
[dcast.d] remove use of some `goto`s (dlang/dmd!21855)
thewilsonator Sep 14, 2025
bd89fcf
Break semantic dependency of `dmd/func.d` on `dmd/dsymbolsem.d` (dlan…
elshorbagyx Sep 14, 2025
a2589fa
[declaraion.d] reduce indentation in `AliasDeclaration.overloadInsert…
thewilsonator Sep 14, 2025
4706555
[dtemplate.d] move instance methods to `dsymbolsem.d`, make `private`…
thewilsonator Sep 15, 2025
34717ad
[dsymbolsem.d] remove now obslete comment (dlang/dmd!21864)
thewilsonator Sep 15, 2025
6d0b3e6
druntime: Add bindings for Solaris sys/regset.h
ibuclaw Sep 5, 2025
724ad92
druntime: Add bindings for Solaris thread.h
ibuclaw Sep 5, 2025
5d9d477
[traits.d] reduce some indentation (dlang/dmd!21867)
thewilsonator Sep 16, 2025
eabe7bb
druntime: Add bindings for Solaris sys/procfs.h (lwpstatus_t) (dlang/…
ibuclaw Sep 16, 2025
1714849
Show error when variadic basic type has no matching argument (dlang/d…
ntrel Sep 17, 2025
b59b92e
Move `overloadInsert` to `dsymbolsem.d` (dlang/dmd!21877)
elshorbagyx Sep 17, 2025
5da3ee5
druntime: Fix Solaris deadlock between sem_wait and gcLock in atfork …
ibuclaw Sep 17, 2025
1df5517
druntime: Rename HaveFork to AllocSupportsShared
ibuclaw Sep 8, 2025
eacab29
Break semantic dependency of `dmd/func.d` on `dmd/funcsem.d` (dlang/…
elshorbagyx Sep 18, 2025
e2f5022
druntime: Fix build regression on PPC (dlang/dmd!21880)
ibuclaw Sep 18, 2025
edecda0
Update druntime/src/core/internal/gc/os.d
ibuclaw Sep 18, 2025
5d93886
Break semantic dependency of `dmd/aggregate.d` on `dmd/dsymbolsem.d` …
elshorbagyx Sep 19, 2025
747c556
Merge pull request dlang/dmd!21872 from ibuclaw/alloc_supports_shared
dlang-bot Sep 19, 2025
592d137
Break semantic dependency of `dmd/declaration.d` on `dmd/dsymbolsem.d…
elshorbagyx Sep 19, 2025
39238b9
druntime: Only use async-signal safe fork in GC
ibuclaw Sep 8, 2025
af884e4
Break semantic dependency of `dmd/declaration.d` on `dmd/typesem.d` (…
elshorbagyx Sep 19, 2025
0af73d6
Add strerrorname_np and strerrordesc_np (dlang/dmd!21887)
Inkrementator Sep 20, 2025
a207c50
Break semantic dependency of `dmd/dmodule.d` on `dmd/dsymbolsem.d` (d…
elshorbagyx Sep 20, 2025
469b5da
fix dlang/dmd!20157: importC does not handle nested struct designated…
Emmankoko Sep 20, 2025
fba6fa6
Move `Expression.equals` and `Expression.isIdentical` to `dmd/express…
elshorbagyx Sep 21, 2025
8695522
Move `TemplateInstance.hasNestedArgs` to `templatesem.d` (dlang/dmd!2…
elshorbagyx Sep 22, 2025
26fb6df
[templatesem.d] use early return in `deduceFunctionTuple`
thewilsonator Sep 22, 2025
872c0ed
[templatesem.d] use early return in `deduceAliasThis`
thewilsonator Sep 22, 2025
30f467a
Move some template specific semantic to `templatesem.d` (dlang/dmd!21…
thewilsonator Sep 22, 2025
efe5bd2
Replace `__ArrayCast` with pointer cast to avoid inout-related errors…
Albert24GG Sep 22, 2025
360f115
Move `TemplateInstanceBox` to `dmd/templatesem.d` (dlang/dmd!21904)
elshorbagyx Sep 24, 2025
acbe176
Move `arrayObjectHash` to `dmd/templatesem.d` (dlang/dmd!21905)
elshorbagyx Sep 25, 2025
ca8d99b
[hdrgen.d] restrict semantic import of `typesem.d` (dlang/dmd!21907)
thewilsonator Sep 26, 2025
1ef2edd
Fix incorrect type qualifier error for incompatible `opApply` (dlang…
ntrel Sep 26, 2025
a1f14d8
fix dlang/dmd!20301 - "The CodeView record is corrupted" heisenbug (d…
rainers Sep 27, 2025
558ce4a
fix warnings about failed inlining for core.internal.convert.toUByte(…
rainers Sep 27, 2025
81d0a70
fix dlang/dmd!20092: importC: can't take address of some compound-lit…
Emmankoko Sep 27, 2025
73168ac
Fix dlang/dmd!20917: closure for nested function in __traits(compiles…
tim-dlang Sep 28, 2025
994c90e
fix regression from dlang/dmd!21066: cannot assign literal of type co…
rainers Sep 28, 2025
c3e37dd
Merge remote-tracking branch 'upstream/master' into stable
dkorpel Sep 30, 2025
5b529bd
fix issue dlang/dmd!19983: ImportC function redeclarations should be …
Emmankoko Sep 30, 2025
073b970
Merge remote-tracking branch 'upstream/master' into stable
dkorpel Oct 1, 2025
0cf2de5
Fix pragma mangle merge
dkorpel Oct 1, 2025
3bb35fa
Merge remote-tracking branch 'origin/dmd-rewrite-stable' into merge_s…
kinke Dec 5, 2025
4b7e3a4
Misc. compiler merge fixes
kinke Dec 5, 2025
3e88d6a
A few more compiler merge fixes, unexpected because of outdated front…
kinke Dec 5, 2025
1e6ddc1
Bump Phobos
kinke Dec 5, 2025
95df761
Compiler: Populate new TypeInfo_AssociativeArray fields
kinke Dec 6, 2025
a44dccd
Fix some recent C++ header regressions (dlang/dmd!22200)
kinke Dec 6, 2025
2e07f51
Compiler: Adapt to new AssocArrayLiteralExp lowering
kinke Dec 6, 2025
277bee4
Compiler: Adapt to other removed AA runtime hooks
kinke Dec 6, 2025
308cf2b
Compiler: Adapt to renamed CTFE lowering field for AssocArrayLiteralExp
kinke Dec 8, 2025
c73e78b
CMake: Compile Phobos unittests with -dw instead of -de
kinke Dec 8, 2025
68320a0
Fix compilability of tests/dmd/run.d
kinke Dec 8, 2025
dfd2aa5
Merge fix: Revert to needsClosure() in gen/nested.cpp
kinke Dec 8, 2025
c12509e
Compiler: Sync TimeTraceEventType enum in C++ header
kinke Dec 8, 2025
9316cc5
Update expected error message in lit-test fail_compilation/betterC_ty…
kinke Dec 8, 2025
bc649a1
Minimally adapt lit-test codegen/atomicrmw.d to new deprecation
kinke Dec 8, 2025
b3a714d
Merge fix: Handle missed case of _d_aaNew lowering codegen
kinke Dec 8, 2025
e0b4330
Minimally adapt expected -vcg-ast output for LDC
kinke Dec 8, 2025
3c8e077
dmd tests: Extend implicit `-defaultlib=` to .i tests
kinke Dec 8, 2025
bb360d8
Tests: Make fail_compilation/failexpression{3,4}.d work for targets w…
kinke Dec 8, 2025
0136fac
Merge remote-tracking branch 'origin/dmd-rewrite-stable' into merge_s…
kinke Dec 9, 2025
f1b2751
fix regression in dlang/dmd!21066 issuing deprecation message about i…
rainers Dec 9, 2025
4c35513
cxxfrontend: Add needsClosure(FuncDeclaration) as needed by LDC (dlan…
kinke Dec 9, 2025
9d97bb7
Phobos: Bump for deprecation fix, and compile unittests with -de again
kinke Dec 9, 2025
b640196
Compiler: Skip 0-sized value parameters (incl. noreturn) in IR functi…
kinke Dec 9, 2025
8b542f8
fix(GC): Fix issue with GC thread cleanup routine being called after
schveiguy Nov 7, 2025
ca400e0
fix(GC): Fix dlang/dmd!22004 - Setting array length of valid trailing…
schveiguy Oct 22, 2025
830c8fb
Fix null dereference in expressionsem (dlang/dmd!21964)
rikkimax Oct 13, 2025
fe34350
Fix dlang/dmd!21945 DIP1000 scope array of arrays comparison (dlang/d…
Albert24GG Oct 10, 2025
1a2fa01
ImportC: Add __module declarations (dlang/dmd!20659)
dkorpel Oct 21, 2025
c094b26
Merge pull request dlang/dmd!22213 from dkorpel/stable
dkorpel Dec 9, 2025
74a7ac4
2 more adaptations after checking dmd/{globals,main,mars}.d diff
kinke Dec 9, 2025
eba98e0
dmd/targetcompiler.d: Prefer sub-switches like `-fno-exceptions` over…
kinke Dec 9, 2025
b7e90db
[extend changelog entry]
kinke Dec 9, 2025
45be5cd
CI: Enable std.internal.math.gammafunction unittests on Linux AArch64
kinke Dec 10, 2025
c0b65a2
Fix dlang/dmd!21646 - casting away qualifiers for class objects with …
kinke Dec 11, 2025
e63507a
Merge remote-tracking branch 'origin/dmd-rewrite-stable' into merge_s…
kinke Dec 11, 2025
82779f3
CMake: Restore -checkaction=context for Phobos unittests
kinke Dec 11, 2025
d173ae3
Disable new bitfields debuginfo test in runnable/testpdb.d for now
kinke Dec 11, 2025
6a11a30
Merge remote-tracking branch 'origin/master' into merge_stable
kinke Dec 11, 2025
aac9e84
Merge remote-tracking branch 'origin/master' into merge_stable
kinke Dec 16, 2025
cfff6f1
Disable a few druntime-test-exceptions subtests for glibc Linux AArch64
kinke Dec 16, 2025
3eb96fc
Phobos: Slightly relax gammafunction unittests to pass with quadruple…
kinke Dec 16, 2025
c6108bb
Predefine version(Apple) for Apple targets
kinke Dec 17, 2025
2b7c8bd
std.math.exponential: Disable 2 unittest assertions with enabled opti…
kinke Dec 17, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 0 additions & 4 deletions .github/actions/4d-test-libs/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,6 @@ runs:
# sporadically hanging since Ubuntu 22
excludes+='|^core.thread-shared_32$'
elif [[ '${{ runner.os }}-${{ inputs.arch }}' == Linux-aarch64 ]]; then
# FIXME: failing unittest(s)
excludes+='|^std.internal.math.gammafunction'
# FIXME: failing unittest(s) with enabled optimizations
excludes+='|^std.math.exponential(-shared)?$'
# FIXME: sporadically hanging
excludes+='|^core.thread-shared$'
fi
Expand Down
2 changes: 1 addition & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# LDC master

#### Big news
- Frontend, druntime and Phobos are at version ~[2.112.0](https://dlang.org/changelog/2.112.0.html), incl. new command-line options `-extI`, `-dllimport=externalOnly` and `-edition`. (#4949, #4962, #4988)
- Frontend, druntime and Phobos are at version ~[2.112.0](https://dlang.org/changelog/2.112.0.html), incl. new command-line options `-extI`, `-dllimport=externalOnly` and `-edition`. (#4949, #4962, #4988, #5029)
- **Breaking change for dcompute**: The special `@kernel` UDA is now a function and _**requires**_ parentheses as in `@kernel() void foo(){}`. Optionally you can provide launch dimensions, `@kernel([2,4,8])`, to specify to the compute runtime how the kernel is intended to be launched.
- ldc2.conf can now be a directory. All the files inside it, ordered naturally, will be concatenated and treated like a big config. (#4954)
- Running `ldc-build-runtime --installWithSuffix` now includes installing a target-specific .conf file to that directory. (#4978)
Expand Down
37 changes: 20 additions & 17 deletions dmd/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ Note that these groups have no strict meaning, the category assignments are a bi
| [mars.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/mars.d) | Argument parsing, path manipulation. |
| [cli.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/cli.d) | Define the command line interface |
| [dmdparams.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/dmdparams.d) | DMD-specific parameters |
| [dmsc.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/dmsc.d) | Configures and initializes the back-end |
| [globals.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/globals.d) | Define a structure storing command line options |
| [dinifile.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/dinifile.d) | Parse settings from .ini file (`sc.ini` / `dmd.conf`) |
| [vsoptions.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/vsoptions.d) | Detect the Microsoft Visual Studio toolchain for linking |
Expand All @@ -46,6 +47,7 @@ Note that these groups have no strict meaning, the category assignments are a bi
| [compiler.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/compiler.d) | Describe a back-end compiler and implements compiler-specific actions |
| [deps.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/deps.d) | Implement the `-deps` and `-makedeps` switches |
| [timetrace.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/timetrace.d) | Build time profiling utility |
| [targetcompiler.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/targetcompiler.d) | Differences in building gdc, ldc and dmd |

### Lexing / parsing

Expand Down Expand Up @@ -209,27 +211,28 @@ Note that these groups have no strict meaning, the category assignments are a bi
| [lib/scanmach.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/lib/scanmach.d) | Extract symbol names from a library in Mach-O format |
| [lib/scanmscoff.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/lib/scanmscoff.d) | Extract symbol names from a library in COFF format |


### ABI
| File | Purpose |
| [argtypes_x86.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/argtypes_x86.d) | Convert a D type into simple (register) types for the 32-bit x86 ABI |
| [argtypes_sysv_x64.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/argtypes_sysv_x64.d) | 'argtypes' for the x86_64 System V ABI |
| [argtypes_aarch64.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/argtypes_aarch64.d) | 'argtypes' for the AArch64 ABI |
### Code generation / back-end interfacing

| File | Purpose |
|---------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------|
| [dmsc.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/dmsc.d) | Configures and initializes the back-end |
| [toobj.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/toobj.d) | Convert an AST that went through all semantic phases into an object file |
| [toir.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/toir.d) | Convert Dsymbols intermediate representation |
| [e2ir.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/e2ir.d) | Convert Expressions to intermediate representation |
| [s2ir.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/s2ir.d) | Convert Statements to intermediate representation |
| [stmtstate.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/stmtstate.d) | Used to help transform statement AST into flow graph |
| [toctype.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/toctype.d) | Convert a D type to a type the back-end understands |
| [tocsym.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/tocsym.d) | Convert a D symbol to a symbol the linker understands (with mangled name) |
| [argtypes_x86.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/argtypes_x86.d) | Convert a D type into simple (register) types for the 32-bit x86 ABI |
| [argtypes_sysv_x64.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/argtypes_sysv_x64.d) | 'argtypes' for the x86_64 System V ABI |
| [argtypes_aarch64.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/argtypes_aarch64.d) | 'argtypes' for the AArch64 ABI |
| [glue.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/glue.d) | Generate the object file for function declarations |
| [gluelayer.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/gluelayer.d) | Declarations for back-end functions that the front-end invokes |
| [todt.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/todt.d) | Convert initializers into structures that the back-end will add to the data segment |
| [tocvdebug.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/tovcdebug.d) | Generate debug info in the CV4 debug format. |
| [objc.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/objc.d) | Objective-C interfacing |
| [objc_glue.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/objc_glue.d) | Glue code for Objective-C interop. |
| [stmtstate.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/stmtstate.d) | Used to help transform statement AST into flow graph |
| [objc.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/objc.d) | Objective-C interfacing |
| [irgen/toobj.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/irgen/toobj.d) | Convert an AST that went through all semantic phases into an object file|
| [irgen/toir.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/irgen/toir.d) | Convert Dsymbols intermediate representation |
| [irgen/e2ir.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/irgen/e2ir.d) | Convert Expressions to intermediate representation |
| [irgen/s2ir.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/irgen/s2ir.d) | Convert Statements to intermediate representation |
| [irgen/toctype.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/irgen/toctype.d) | Convert a D type to a type the back-end understands |
| [irgen/tocsym.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/irgen/tocsym.d) | Convert a D symbol to a symbol the linker understands (with mangled name) |
| [irgen/package.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/irgen/package.d) | Generate the object file for function declarations |
| [irgen/todt.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/irgen/todt.d) | Convert initializers into structures that the back-end will add to the data segment |
| [irgen/tocvdebug.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/irgen/tovcdebug.d)| Generate debug info in the CV4 debug format. |
| [irgen/objc.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/irgen/objc.d)| irgen code for Objective-C interop. |

**Name mangling**

Expand Down
1 change: 1 addition & 0 deletions dmd/access.d
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ import dmd.dmodule;
import dmd.dscope;
import dmd.dstruct;
import dmd.dsymbol;
import dmd.dsymbolsem : toAlias;
import dmd.errors;
import dmd.expression;
import dmd.funcsem : overloadApply;
Expand Down
64 changes: 2 additions & 62 deletions dmd/aggregate.d
Original file line number Diff line number Diff line change
Expand Up @@ -25,12 +25,10 @@ import dmd.declaration;
import dmd.dscope;
import dmd.dstruct;
import dmd.dsymbol;
import dmd.dsymbolsem : dsymbolSemantic, determineSize, include;
import dmd.dtemplate;
import dmd.errors;
import dmd.expression;
import dmd.func;
import dmd.globals;
import dmd.hdrgen;
import dmd.id;
import dmd.identifier;
Expand Down Expand Up @@ -146,6 +144,7 @@ extern (C++) abstract class AggregateDeclaration : ScopeDsymbol
DtorDeclaration fieldDtor; /// function destructing (non-inherited) fields

Expression getRTInfo; /// pointer to GC info generated by object.RTInfo(this)
Scope* rtInfoScope; /// scope to be used when evaluating getRTInfo

///
Visibility visibility;
Expand All @@ -170,7 +169,7 @@ extern (C++) abstract class AggregateDeclaration : ScopeDsymbol
sc2.parent = this;
sc2.inunion = isUnionDeclaration();
sc2.visibility = Visibility(Visibility.Kind.public_);
sc2.explicitVisibility = 0;
sc2.explicitVisibility = false;
sc2.aligndecl = null;
sc2.userAttribDecl = null;
sc2.namespace = null;
Expand All @@ -186,32 +185,6 @@ extern (C++) abstract class AggregateDeclaration : ScopeDsymbol
return fields.length - isNested() - (vthis2 !is null);
}

override final uinteger_t size(Loc loc)
{
//printf("+AggregateDeclaration::size() %s, scope = %p, sizeok = %d\n", toChars(), _scope, sizeok);
bool ok = determineSize(this, loc);
//printf("-AggregateDeclaration::size() %s, scope = %p, sizeok = %d\n", toChars(), _scope, sizeok);
return ok ? structsize : SIZE_INVALID;
}


override final Type getType()
{
/* Apply storage classes to forward references. (Issue 22254)
* Note: Avoid interfaces for now. Implementing qualifiers on interface
* definitions exposed some issues in their TypeInfo generation in DMD.
* Related PR: https://github.com/dlang/dmd/pull/13312
*/
if (semanticRun == PASS.initial && !isInterfaceDeclaration())
{
auto stc = storage_class;
if (_scope)
stc |= _scope.stc;
type = type.addSTC(stc);
}
return type;
}

// is aggregate deprecated?
override final bool isDeprecated() const
{
Expand Down Expand Up @@ -381,39 +354,6 @@ version (IN_LLVM) {} else
}
}

/*********************************
* Iterate this dsymbol or members of this scoped dsymbol, then
* call `fp` with the found symbol and `params`.
* Params:
* symbol = the dsymbol or parent of members to call fp on
* fp = function pointer to process the iterated symbol.
* If it returns nonzero, the iteration will be aborted.
* ctx = context parameter passed to fp.
* Returns:
* nonzero if the iteration is aborted by the return value of fp,
* or 0 if it's completed.
*/
int apply(Dsymbol symbol, int function(Dsymbol, void*) fp, void* ctx)
{
if (auto nd = symbol.isNspace())
{
return nd.members.foreachDsymbol( (s) { return s && s.apply(fp, ctx); } );
}
if (auto ad = symbol.isAttribDeclaration())
{
return ad.include(ad._scope).foreachDsymbol( (s) { return s && s.apply(fp, ctx); } );
}
if (auto tm = symbol.isTemplateMixin())
{
if (tm._scope) // if fwd reference
dsymbolSemantic(tm, null); // try to resolve it

return tm.members.foreachDsymbol( (s) { return s && s.apply(fp, ctx); } );
}

return fp(symbol, ctx);
}

/****************************
* Do byte or word alignment as necessary.
* Align sizes of 0, as we may not know array sizes yet.
Expand Down
11 changes: 2 additions & 9 deletions dmd/aggregate.h
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ namespace dmd
bool fill(StructDeclaration* sd, Loc loc, Expressions &elements, bool ctorinit);
bool isFuncHidden(ClassDeclaration* cd, FuncDeclaration* fd);
Dsymbol* vtblSymbol(ClassDeclaration *cd);
bool fillVtbl(BaseClass *bc, ClassDeclaration *cd, FuncDeclarations *vtbl, int newinstance);
}

enum class ClassKind : uint8_t
Expand Down Expand Up @@ -113,15 +114,14 @@ class AggregateDeclaration : public ScopeDsymbol
DtorDeclaration *fieldDtor; // function destructing (non-inherited) fields

Expression *getRTInfo; // pointer to GC info generated by object.RTInfo(this)
Scope* rtInfoScope; // scope to be used when evaluating getRTInfo

Visibility visibility;
d_bool noDefaultCtor; // no default construction
d_bool disableNew; // disallow allocations using `new`
Sizeok sizeok; // set when structsize contains valid data

virtual Scope *newScope(Scope *sc);
uinteger_t size(Loc loc) override final;
Type *getType() override final;
bool isDeprecated() const override final; // is aggregate deprecated?
bool isNested() const;
bool isExport() const override final;
Expand Down Expand Up @@ -173,7 +173,6 @@ class StructDeclaration : public AggregateDeclaration
static StructDeclaration *create(Loc loc, Identifier *id, bool inObject);
StructDeclaration *syntaxCopy(Dsymbol *s) override;
const char *kind() const override;
bool isPOD();
bool zeroInit() const; // !=0 if initialize with 0 fill
bool zeroInit(bool v);
bool hasIdentityAssign() const; // true if has identity opAssign
Expand All @@ -198,7 +197,6 @@ class StructDeclaration : public AggregateDeclaration

unsigned numArgTypes() const;
Type *argType(unsigned index);
bool hasRegularCtor(bool ignoreDisabled = false);
};

class UnionDeclaration final : public StructDeclaration
Expand All @@ -222,8 +220,6 @@ struct BaseClass

DArray<BaseClass> baseInterfaces; // if BaseClass is an interface, these
// are a copy of the InterfaceDeclaration::interfaces

bool fillVtbl(ClassDeclaration *cd, FuncDeclarations *vtbl, int newinstance);
};

struct ClassFlags
Expand Down Expand Up @@ -277,9 +273,6 @@ class ClassDeclaration : public AggregateDeclaration
ThreeState isabstract; // if abstract class
Baseok baseok; // set the progress of base classes resolving
ObjcClassDeclaration objc; // Data for a class declaration that is needed for the Objective-C integration
#if !IN_LLVM
Symbol *cpp_type_info_ptr_sym; // cached instance of class Id.cpp_type_info_ptr
#endif

static ClassDeclaration *create(Loc loc, Identifier *id, BaseClasses *baseclasses, Dsymbols *members, bool inObject);
const char *toPrettyChars(bool QualifyTypes = false) override;
Expand Down
1 change: 1 addition & 0 deletions dmd/argtypes_aarch64.d
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
module dmd.argtypes_aarch64;

import dmd.astenums;
import dmd.dsymbolsem : isPOD;
import dmd.mtype;
import dmd.typesem;

Expand Down
2 changes: 1 addition & 1 deletion dmd/argtypes_sysv_x64.d
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ module dmd.argtypes_sysv_x64;

import dmd.astenums;
import dmd.declaration;
import dmd.globals;
import dmd.dsymbolsem : isPOD;
import dmd.mtype;
import dmd.typesem;
import dmd.target;
Expand Down
4 changes: 2 additions & 2 deletions dmd/argtypes_x86.d
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ import core.checkedint;

import dmd.astenums;
import dmd.declaration;
import dmd.globals;
import dmd.dsymbolsem : isPOD;
import dmd.location;
import dmd.mtype;
import dmd.typesem;
Expand Down Expand Up @@ -326,7 +326,7 @@ TypeTuple toArgTypes_x86(Type t)
* nfields = number of fields in the aggregate (dimension for static arrays)
* getFieldInfo = get information about the nth field in the aggregate
*/
extern (D) void aggregate(uinteger_t sz, size_t nfields, Type delegate(size_t, out uint, out uint) getFieldInfo)
extern (D) void aggregate(ulong sz, size_t nfields, Type delegate(size_t, out uint, out uint) getFieldInfo)
{
if (nfields == 0)
return memory();
Expand Down
1 change: 1 addition & 0 deletions dmd/arrayop.d
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ import dmd.location;
import dmd.mtype;
import dmd.common.outbuffer;
import dmd.tokens;
import dmd.typesem : isAssignable;
import dmd.visitor;

/**********************************************
Expand Down
1 change: 1 addition & 0 deletions dmd/astcodegen.d
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ struct ASTCodegen
alias UserAttributeDeclaration = dmd.attrib.UserAttributeDeclaration;
alias Ensure = dmd.func.Ensure; // workaround for bug in older DMD frontends
alias ErrorExp = dmd.expression.ErrorExp;
alias ArgumentLabel = dmd.expression.ArgumentLabel;

alias MODFlags = dmd.mtype.MODFlags;
alias Type = dmd.mtype.Type;
Expand Down
13 changes: 10 additions & 3 deletions dmd/astenums.d
Original file line number Diff line number Diff line change
Expand Up @@ -477,7 +477,12 @@ extern (C++) struct structalign_t
private:
ushort value = 0; // unknown
enum STRUCTALIGN_DEFAULT = 1234; // default = match whatever the corresponding C compiler does
bool pack; // use #pragma pack semantics
ubyte flags; // Align semantic flags
enum : ubyte
{
PACK = 0x1, // use #pragma pack semantics
ALIGNAS = 0x2, // use _Alignas semantics
}

public:
pure @safe @nogc nothrow:
Expand All @@ -487,8 +492,10 @@ extern (C++) struct structalign_t
void setUnknown() { value = 0; }
void set(uint value) { this.value = cast(ushort)value; }
uint get() const { return value; }
bool isPack() const { return pack; }
void setPack(bool pack) { this.pack = pack; }
bool isPack() const { return !!(flags & PACK); }
void setPack() { flags |= PACK; }
bool fromAlignas() const { return !!(flags & ALIGNAS); }
void setAlignas() { flags |= ALIGNAS; }
}

/// Use to return D arrays from C++ functions
Expand Down
Loading