Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upgrade frontend & libs to v2.106 #4522

Merged
merged 305 commits into from
Nov 7, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
305 commits
Select commit Hold shift + click to select a range
3d226e0
Delete unused imports part3
RazvanN7 Aug 3, 2023
8a902a4
Delete unused imports part4
RazvanN7 Aug 3, 2023
8688a3f
dtoh: Always refer to default arguments using their FQN.
ibuclaw Aug 3, 2023
926b7d9
fix Issue 23958 - ImportC: undefined identifier __builtin__sprintf_ch…
WalterBright Aug 4, 2023
4c53150
detab main.d
WalterBright Aug 6, 2023
3322de9
Add location field to class Parameter
ibuclaw Jul 19, 2023
be26937
only call ctime() once and not in gendocfile() (dlang/dmd!15507)
WalterBright Aug 7, 2023
0826675
readFile(): there can be only one (dlang/dmd!15506)
WalterBright Aug 7, 2023
6ac50c3
Delete unused imports part5 (dlang/dmd!15499)
RazvanN7 Aug 7, 2023
66408bb
Improve switch skipping variable errors
ntrel Aug 7, 2023
d8a1cb6
bubble errors up from writeFile() (dlang/dmd!15508)
WalterBright Aug 7, 2023
77a1085
move DDOCFILE from doc.d to main.d
WalterBright Aug 5, 2023
f6e0303
remove file I/O from hdrgen.d
WalterBright Aug 8, 2023
70b4837
Fix 24036 - assert message in CTFE becomes `['m', 'e'`...
dkorpel Aug 8, 2023
7ef6c15
no need to add default macros to ddoc files (dlang/dmd!15513)
WalterBright Aug 8, 2023
0b7c29f
use ref's for json.d (dlang/dmd!15515)
WalterBright Aug 8, 2023
d04f986
make equals() nothrow
WalterBright Aug 8, 2023
fe18341
Use -verrors=context for one test
ntrel Aug 9, 2023
10f925f
Revert "make equals() nothrow"
ibuclaw Aug 9, 2023
6ab5a20
remove dmacro.d dependency on doc.d (dlang/dmd!15470)
WalterBright Aug 10, 2023
a1ee8b6
Tweak expected `;` error after statement
ntrel Aug 10, 2023
67168e3
Tweak expected `;` error
ntrel Aug 10, 2023
f944848
etc.linux.memoryerror: add nothrow
WalterBright Aug 10, 2023
90085a7
Merge pull request dlang/dmd!15512 from ntrel/switch-skip
dlang-bot Aug 10, 2023
c37d8cf
Merge pull request dlang/dmd!15527 from ntrel/loc-semi
dlang-bot Aug 11, 2023
929ae94
Fix Issue 21852 - diagnostic: One-liner errors with formatted Loc sho…
ntrel Aug 11, 2023
a67550e
escape.d: mark everything public or private (dlang/dmd!15532)
WalterBright Aug 11, 2023
3b6ca1e
move ddoc file reads out of doc.d (dlang/dmd!15525)
WalterBright Aug 11, 2023
c5536be
Improve expected `}` error after aggregate members (dlang/dmd!15528)
ntrel Aug 12, 2023
d8071b2
Improve @nogc closure error (dlang/dmd!15526)
ntrel Aug 12, 2023
497282d
Discriminate between different kinds of warnings (dlang/dmd!15511)
ibuclaw Aug 12, 2023
aaa002f
doc.d: move file writes to caller
WalterBright Aug 13, 2023
67546cd
Fix Issue 24065 - __traits(getTargetInfo) causes a segfault when pass…
RazvanN7 Aug 3, 2023
f3ad1e5
Fix Issue 24066 - __traits(isAbstractClass) causes a segfault when pa…
RazvanN7 Aug 3, 2023
c4ddc77
Fix Issue 24079 - core.sys.windows.winnt.IMAGE_FIRST_SECTION returns …
n8sh Aug 8, 2023
487f153
Fix 24070 - Opaque struct with nested definition when taking pointer …
dkorpel Aug 8, 2023
d449d07
[stable] Make enum function a deprecation, not an error (dlang/dmd!15…
ntrel Aug 12, 2023
7213848
fix Issue 24084 - Add -nothrow Switch to Compiler (dlang/dmd!15536)
WalterBright Aug 18, 2023
82dfef6
ImportC: better diagnostic for malformed __declspec
WalterBright Aug 22, 2023
3085967
move errorSinkNull to globals.d (dlang/dmd!15554)
WalterBright Aug 24, 2023
caa1c53
fix Issue 24105 - Dip1000 C variadics not marked as scope should not …
WalterBright Aug 24, 2023
41f64de
Fix dlang/dmd!24108 - segfault when using -H or -X on importC (dlang/…
adamdruppe Aug 25, 2023
c772e66
Add Intel CET to getTargetInfo (dlang/dmd!15433)
Aug 27, 2023
37e48b2
Add WinAPI Annotations to importc.h
LightBender Aug 30, 2023
b636eac
Fix whitespace.
LightBender Aug 30, 2023
76eb222
Include no_sal2.h to render the API Annotations inert.
LightBender Aug 30, 2023
e9408e8
Add sal.h to get pragma once and prevent macro redefinitions.
LightBender Aug 30, 2023
982e2c6
Remove comments that are no longer needed.
LightBender Aug 30, 2023
3d660d2
Merge pull request dlang/dmd!15563 from LightBender/winapi-defines
dlang-bot Aug 31, 2023
db6703b
Fix Issue 24117 - noreturn can be used as expression (dlang/dmd!15562)
ntrel Aug 31, 2023
0f44582
Fix 23103 - static initialization of associative arrays is not implem…
dkorpel Aug 31, 2023
861ea3f
Deprecate the DRT Windows-specific versions of ODBC. (dlang/dmd!15560)
LightBender Aug 31, 2023
d6ff77d
nested cannotInfer
ntrel Aug 31, 2023
89319e2
Refactor FuncExp.matchType to use ErrorSink
ntrel Aug 31, 2023
18d483e
Add tests
ntrel Sep 1, 2023
e7e3989
Maybe sc is null
ntrel Sep 1, 2023
255c25e
Merge pull request dlang/dmd!15565 from ntrel/match-type
dlang-bot Sep 1, 2023
273cf5c
resurrect hex string literals (dlang/dmd!15393)
WalterBright Sep 1, 2023
0f27063
fix Issue 24133 - printf format checking of %n allows writing to cons…
WalterBright Sep 3, 2023
79a1acd
chkformat.d: use ErrorSink
WalterBright Sep 3, 2023
b55a43d
escape.d: start using ErrorSink (dlang/dmd!15558)
WalterBright Sep 4, 2023
864a7df
escape.d: more ErrorSink
WalterBright Sep 5, 2023
b216ff0
convert covb from pointer to array
WalterBright Sep 6, 2023
f14de2d
Fix Issue 24112 - binary expressions with noreturn vars produce incon…
ntrel Sep 7, 2023
cf7723c
Revert "Fix Issue 24112 - binary expressions with noreturn vars produ…
baz-bg Sep 7, 2023
74e1d28
fix issue 22682 - `pragma(mangle)` does not work for nested functions…
baz-bg Sep 8, 2023
332349c
Show type location for 'no property' error (dlang/dmd!15586)
ntrel Sep 8, 2023
18e741d
Fix Issue 23522 - Error message when enum type is not integral and a …
ntrel Nov 27, 2022
8385430
Add setErrorCallback
ntrel Dec 7, 2022
212278e
use 'cannot check for overflow' message
ntrel Dec 7, 2022
1479323
Fix rebase
ntrel Sep 6, 2023
1bef299
Change to use gagging instead of callback
ntrel Sep 8, 2023
9ba9a5c
Remove errorCallback
ntrel Sep 8, 2023
317830a
Fix test
ntrel Sep 8, 2023
b7b56ed
Merge pull request dlang/dmd!15588 from ntrel/enum-inc-max
dlang-bot Sep 8, 2023
58dabc2
Improve error when generating first enum member of non-scalar type
ntrel Sep 8, 2023
00e3214
fix Issue 24130 - ImportC: Windows headers use inline asm with differ…
WalterBright Sep 11, 2023
a640643
Fix Issue 24107 - The error for exceeding the CTFE recursion limit by…
RazvanN7 Sep 11, 2023
4040e5a
fix Issue 24071 - When enum has typedef integer constants do not have…
WalterBright Sep 12, 2023
9949dc9
Fix Issue 15752 - Better Error Message for Assigning Incorrect AA Emp…
ntrel Sep 12, 2023
d4b4af1
fix Issue 24123 - More importc definitions are needed for macOS (dlan…
WalterBright Sep 12, 2023
355e566
Factor usage global.param state into separate struct (dlang/dmd!15603)
thewilsonator Sep 14, 2023
47292a3
Merge remote-tracking branch 'upstream/stable' into merge_stable
ibuclaw Sep 15, 2023
614df3f
Merge pull request dlang/dmd!15609 from ibuclaw/merge_stable
ibuclaw Sep 16, 2023
af1aa27
change toCBuffer to use ref parameters (dlang/dmd!15615)
WalterBright Sep 17, 2023
036d059
move functions out of statement.d (dlang/dmd!15611)
WalterBright Sep 18, 2023
a04d852
doc.d: switch to ref buf instead of *buf (dlang/dmd!15616)
WalterBright Sep 18, 2023
be556f7
change OutBuffer* to ref OutBuffer (dlang/dmd!15617)
WalterBright Sep 19, 2023
4e8960b
more OutBuffer* to ref OutBuffer (dlang/dmd!15619)
WalterBright Sep 19, 2023
1a408ad
fix(tokens): annotate `isKeyword` with `pure @nogc` (dlang/dmd!15607)
snprajwal Sep 19, 2023
5ee0a84
Fix struct stack_t layout on MIPS
liushuyu Sep 10, 2023
0e364f4
resource.d: Fix RLIMIT enum values on MIPS
liushuyu Sep 11, 2023
50a4405
fcntl.d: Fix flock constants on MIPS
liushuyu Sep 11, 2023
dcaca9f
fix Issue 24129 - ImportC: MS-Link cannot handle multiple COMDATs wit…
WalterBright Sep 20, 2023
932cdd8
move visitVarDecl() out of DsymbolPrettyPrintVisitor (dlang/dmd!15621)
WalterBright Sep 21, 2023
bd5a174
remove error() from Statement (dlang/dmd!15622)
WalterBright Sep 21, 2023
62d3db9
blockexit.d: use ErrorSink (dlang/dmd!15623)
WalterBright Sep 21, 2023
25d131d
Improve invalid operator error message (dlang/dmd!15620)
ntrel Sep 21, 2023
beeac8a
make D great again
adamdruppe Sep 1, 2023
a421112
Remove tests for unreachable statements
dkorpel Sep 21, 2023
883c636
Convert tabs to spaces
dkorpel Sep 21, 2023
3cda6ce
Fix 10532, 14835, 20522 by adding test cases
dkorpel Sep 21, 2023
ed1a982
fix regression in dlang/dmd!15623 (dlang/dmd!15624)
WalterBright Sep 22, 2023
c1ea458
Merge pull request dlang/dmd!15610 from liushuyu/master
ibuclaw Sep 22, 2023
9eab717
Errors: Remove discrimation of different kinds of warnings
ibuclaw Sep 16, 2023
6788da3
CLI: Remove obsolete flag and all its warnings, undocument -wo flag
ibuclaw Sep 23, 2023
501f04d
run toCBufferInstance through front door of DsymbolPrettyPrintVisitor…
WalterBright Sep 25, 2023
ac1f266
move visitTemplateParameters out of DsymbolPrettyPrintVisitor (dlang/…
WalterBright Sep 25, 2023
fb7eec4
change hasNoDefault to hasDefault (dlang/dmd!15634)
WalterBright Sep 26, 2023
bd97953
make use of Statement.arraySyntaxCopy() (dlang/dmd!15633)
WalterBright Sep 26, 2023
06e9b23
move checkLabel() to statementsem.d (dlang/dmd!15632)
WalterBright Sep 26, 2023
36ffbc2
Merge pull request dlang/dmd!15612 from ibuclaw/rm_obsolete_warnings
ibuclaw Sep 27, 2023
5d3cab6
Do not generate context for `assert(0)` (dlang/dmd!15625)
thewilsonator Sep 28, 2023
b2aeb57
Merge branch 'master' into sanity
adamdruppe Sep 28, 2023
2dbd8ea
make DsymbolPrettyPrintVisitor a function local class 2 (dlang/dmd!15…
WalterBright Sep 28, 2023
6404735
hdrgen.d: convert switch to array (dlang/dmd!15638)
WalterBright Sep 29, 2023
2282b34
fix Issue 24156 - ImportC: Apple uses __signed as a keyword (dlang/dm…
WalterBright Sep 30, 2023
18de0b5
fix Issue 24154 - ImportC: useless expression parsed as invalid varia…
WalterBright Sep 30, 2023
68eae58
VoidInitExp doesn't need its own toChars() (dlang/dmd!15641)
WalterBright Oct 1, 2023
26893bb
eliminate toChars() from Initializer
WalterBright Sep 30, 2023
8f2e9b9
Merge pull request dlang/dmd!15568 from adamdruppe/sanity
dkorpel Oct 1, 2023
a47edc8
Merge pull request dlang/dmd!15643 from WalterBright/initToChars
dkorpel Oct 1, 2023
d491cb7
eliminate toChars() from Statement (dlang/dmd!15642)
WalterBright Oct 1, 2023
c9e4242
Print instantiation trace when TypeInfo needs to be generated for bet…
RazvanN7 Oct 2, 2023
b8a493f
Move verbose/printing flags out of global.params (dlang/dmd!15605)
thewilsonator Oct 2, 2023
7e2165c
Fix issue 19460 - C style cast error has wrong line number for functions
Mai-Lapyst Oct 3, 2023
51b7575
Remove `global.params.{debug|version}ids` (dlang/dmd!15645)
thewilsonator Oct 3, 2023
4d90ca4
Add tests to verify new location for ccast errors
Mai-Lapyst Oct 4, 2023
144d662
druntime: add support for LoongArch64
liushuyu Sep 14, 2023
f509fe2
druntime/fiber.d, threadasm.S: add LoongArch64 outline assembly ...
liushuyu Sep 15, 2023
d585773
compiler/test: add tests to test LoongArch-related reserved versions
liushuyu Sep 23, 2023
0e1b00e
Merge pull request dlang/dmd!15649 from Mai-Lapyst/fix-issue-19460
dkorpel Oct 4, 2023
1125be6
Fix issue 24174 - [CTFE] goto within with statements & catch blocks c…
Mai-Lapyst Oct 5, 2023
5965b1d
fix Issue 24173 - ImportC: add Microsoft iNN integer literal suffixes…
WalterBright Oct 7, 2023
5ee988e
remove error() from Expression (dlang/dmd!15646)
WalterBright Oct 8, 2023
dabc48d
Fix issue 11070 - Allow declaration statement in a switch expression …
Mai-Lapyst Oct 9, 2023
ba39056
try out replacing Dsymbol.error() (dlang/dmd!15657)
WalterBright Oct 9, 2023
438c6d9
Fix Cirrus CI's frontend.h check. (dlang/dmd!15660)
thewilsonator Oct 9, 2023
f681eba
try out replacing Dsymbol.error() part 3 (dlang/dmd!15659)
WalterBright Oct 9, 2023
f050abd
Implicitly convert hexstring to byte[] (dlang/dmd!15567)
dkorpel Oct 9, 2023
c08abc0
try out replacing Dsymbol.error() part 5 (dlang/dmd!15663)
WalterBright Oct 10, 2023
433d717
try out replacing Dsymbol.error() part 2
WalterBright Oct 9, 2023
22a648c
Merge pull request dlang/dmd!15658 from WalterBright/dsymerror2
dkorpel Oct 10, 2023
6d6a5f0
[dtoh] don't emit typedef's for size_t/ptrdiff_t (dlang/dmd!15665)
thewilsonator Oct 10, 2023
5118529
try out replacing Dsymbol.error() part 6 (dlang/dmd!15664)
WalterBright Oct 10, 2023
368f8d3
try out replacing Dsymbol.error() part 7 (dlang/dmd!15668)
WalterBright Oct 11, 2023
a1af130
try out replacing Dsymbol.error() part 8 (dlang/dmd!15670)
WalterBright Oct 11, 2023
59a3d71
try out replacing Dsymbol.error() part 9 (dlang/dmd!15671)
WalterBright Oct 11, 2023
e42d81e
[dtoh] append _ to C keywords in addition to C++ keywords (dlang/dmd!…
thewilsonator Oct 11, 2023
7fad6a5
fix issue 3396 - call to unimplemented abstract method lead to linkin…
baz-bg Oct 11, 2023
889a860
try out replacing Dsymbol.error() part 10 (dlang/dmd!15674)
WalterBright Oct 12, 2023
2b8a79d
[dtoh] dont use __ for anonymous member (dlang/dmd!15676)
thewilsonator Oct 12, 2023
e6a3958
try out replacing Dsymbol.error() part 11 (dlang/dmd!15675)
WalterBright Oct 12, 2023
0cc4838
try out replacing Dsymbol.error() The Final Chapter (dlang/dmd!15677)
WalterBright Oct 12, 2023
ff42bd6
use isDefaultInitExp() instead of isDefaultInitOp() (dlang/dmd!15678)
WalterBright Oct 13, 2023
76d34d7
use ErrorSink in canthrow.d (dlang/dmd!15682)
WalterBright Oct 14, 2023
a23ac9f
Use correct param name in canThrow DDoc (dlang/dmd!15684)
pbackus Oct 15, 2023
e73c44c
Fix ICE: failed to detect static initialization of associative array …
ibuclaw Oct 15, 2023
4cb1725
[expression.d] make `RealIdentical` private (dlang/dmd!15690)
thewilsonator Oct 15, 2023
299337d
[expression.d] move `isDotOpDispatch` to `expressionsem.d` make priva…
thewilsonator Oct 15, 2023
99b87a7
fix issue 23733 - Can't use template type parameter as type of alias …
baz-bg Oct 15, 2023
99a3ca5
remove unnecessary imports from root.rootobject (dlang/dmd!15692)
WalterBright Oct 15, 2023
43f15f7
root.filename does not use rootobject
WalterBright Oct 16, 2023
df60d65
test: Add missing EXTRA_FILES directives to tests (dlang/dmd!15698)
ibuclaw Oct 16, 2023
bc324cc
Catch need not be a RootObject (dlang/dmd!15700)
WalterBright Oct 16, 2023
8fa4e8d
move `expandAliasThisTuples` to `expressionsem.d` (dlang/dmd!15694)
thewilsonator Oct 16, 2023
67bf4fe
Fix out of sync C++ headers for GDC and LDC (dlang/dmd!15697)
ibuclaw Oct 16, 2023
d8955d0
Revert "Catch need not be a RootObject (dlang/dmd!15700)"
ibuclaw Oct 16, 2023
01e3bb5
Merge pull request dlang/dmd!15701 from dlang/revert-15700-CatchNoRoot
ibuclaw Oct 16, 2023
deeebd4
eliminate static constructor in mustuse.d (dlang/dmd!15704)
WalterBright Oct 17, 2023
4085049
move dmd/root/rootobject.d to dmd (dlang/dmd!15703)
WalterBright Oct 18, 2023
6d31e0d
C++: Use d_size_t in gendocfile declaration (dlang/dmd!15706)
ibuclaw Oct 18, 2023
d683433
fix Issue 24181 - reading double parameter from RCX rather than XMM1 …
WalterBright Oct 19, 2023
24e2315
move `firstComma` to `dinterpret.d` (dlang/dmd!15709)
thewilsonator Oct 19, 2023
f0a31b9
move `CondExp.hookDtors` to `expressionsem.d` (dlang/dmd!15708)
thewilsonator Oct 19, 2023
a67dccd
move `hasThis` to `expressionsem.d` (dlang/dmd!15710)
thewilsonator Oct 19, 2023
7e35478
move `checkRightThis` to `expressionsem.d` (dlang/dmd!15711)
thewilsonator Oct 19, 2023
fbb6566
[expression.d] move `valueNoDtor` to `expressionsem.d` make private (…
thewilsonator Oct 19, 2023
6e1cc5c
Fix Issue 24168 - Corrupted if TLS values are passed in ref parameter…
kubo39 Oct 20, 2023
4773509
Remove D1 warning about length shadowing local variables (dlang/dmd!1…
ibuclaw Oct 21, 2023
0a0f71f
Fix more out of sync C++ headers (dlang/dmd!15717)
ibuclaw Oct 21, 2023
d081177
Remove conditionally disabled warnings from setUnsafePreview (dlang/d…
ibuclaw Oct 21, 2023
b7b6f8a
Remove conditionally disabled warnings from blockexit pass (dlang/dmd…
ibuclaw Oct 21, 2023
24ca80d
Remove conditionally disabled warnings from semantic pass (dlang/dmd!…
ibuclaw Oct 21, 2023
7916791
Remove warning for discarded return value (dlang/dmd!15718)
ibuclaw Oct 22, 2023
bfa14e5
C++: Fix use of bool in C++ headers for fields
ibuclaw Oct 22, 2023
900e201
Merge pull request dlang/dmd!15724 from ibuclaw/fix_darwin_ppc
ibuclaw Oct 23, 2023
ca3c9fb
do not add __gshared to functions generated from C (dlang/dmd!15725)
WalterBright Oct 23, 2023
cbce935
Make `Visibility` and `Loc` ctors available to C++ (dlang/dmd!15726)
thewilsonator Oct 23, 2023
ac77662
Translate `_d_newarray{U,iT,T}` to a single template (dlang/dmd!15299)
teodutu Oct 24, 2023
3e47816
C++: Mark many non-virtual 'final' methods as 'extern (D)' (dlang/dmd…
ibuclaw Oct 25, 2023
9dd3b86
Add bindings for FreeBSD's ifaddrs.h. (dlang/dmd!15730)
jmdavis Oct 25, 2023
002b088
ImportC: align not set to default (dlang/dmd!15731)
WalterBright Oct 26, 2023
fbc11df
dmd.expression: Remove ::emplace function (dlang/dmd!15733)
ibuclaw Oct 26, 2023
ec2cca8
ImportC remove alias from enum declaration in di file (dlang/dmd!15732)
WalterBright Oct 26, 2023
49bbab5
Add core.sys.freebsd.sys.socket. (dlang/dmd!15734)
jmdavis Oct 26, 2023
8f751f5
fix Issue 24121 - ImportC: typedef enum fails to compile when generat…
WalterBright Oct 27, 2023
7f20e47
Version out unittest target on freebsd
ibuclaw Oct 26, 2023
2320108
Add core.sys.freebsd.sys.types. (dlang/dmd!15737)
jmdavis Oct 28, 2023
5d80b9c
Add core.sys.freebsd.net.if_dl. (dlang/dmd!15739)
jmdavis Oct 28, 2023
b8ce66a
fix Issue 24199 - ImportC: generated .di file uses struct keyword whe…
WalterBright Oct 28, 2023
57f09a4
Merge pull request dlang/dmd!15618 from kinke/gha_freebsd
ibuclaw Oct 28, 2023
fbe04ed
Fixed use of const with "macros" in FreeBSD's if_dl.d. (dlang/dmd!15742)
jmdavis Oct 29, 2023
820636d
Add core.sys.linux.linux.if_packet.
jmdavis Oct 28, 2023
d20b7a1
Replace DMD-specific flags with GDC in error messages when IN_GCC
ibuclaw Oct 29, 2023
580950e
Remove shortenedMethods from CompileEnv
ibuclaw Oct 29, 2023
60e3f58
fix Issue 24193 - Incorrect size of unions with bit fields
WalterBright Oct 30, 2023
4207699
fix Issue 24187 - ImportC: _Float32 not defined
WalterBright Oct 30, 2023
a555ae0
dmd.typinf: Remove dependency on gluelayer (dlang/dmd!15749)
ibuclaw Oct 30, 2023
56f35d8
d_do_test: Make `$p:` search from the right, not the left (dlang/dmd!…
kinke Oct 30, 2023
8caadc2
Add core.sys.linux.linux.if_arp.
jmdavis Oct 28, 2023
73a0c9e
Move expression.FuncExp.matchType and Expression.BinExp.checkSharedAc…
RazvanN7 Oct 30, 2023
e06bbe6
Get rid of extra indirection for implicitConv/Cast for expressions
RazvanN7 Oct 30, 2023
e8736c2
Break expression dependency on const folder (dlang/dmd!15753)
RazvanN7 Oct 30, 2023
0790784
Move expression.BinExp.checkOpAssignTypes to expressionsem
RazvanN7 Oct 30, 2023
eab2519
Fix 24208 - Scope pointer can escape via non-scope parameter of pure …
pbackus Oct 30, 2023
c1459eb
Fix issues 24212 and 24213
pbackus Oct 30, 2023
5e72019
Update C++ headers
pbackus Oct 30, 2023
ab9d5f8
make purpose of alignmember() clearer (dlang/dmd!15759)
WalterBright Oct 31, 2023
5d76f1c
replace pointers in placeField() with refs
WalterBright Oct 31, 2023
449c5b0
toPrettyChars: optimize 1 component length
WalterBright Oct 31, 2023
4d769d1
Move expression.StringExp.toUTF8 to expressionsem
RazvanN7 Oct 31, 2023
a88a8ce
make placeField() and alignmember() free functions (dlang/dmd!15765)
WalterBright Oct 31, 2023
7cefda9
Dsymbol.prettyChars(): refactor (dlang/dmd!15766)
WalterBright Nov 1, 2023
420fbc6
expression.Expression : delete implicitConvTo shell function + modify…
RazvanN7 Oct 31, 2023
db8db84
Break expression.d dependency on dinterpret.d
RazvanN7 Nov 1, 2023
771f794
Break expression.d dependency on sideeffect.d
RazvanN7 Nov 1, 2023
b4827ea
Break expression.d dependency on objc + delete other unused imports (…
RazvanN7 Nov 1, 2023
b5d39ed
Merge remote-tracking branch 'upstream/stable' into merge_stable
ibuclaw Nov 1, 2023
a9316ad
Merge pull request dlang/dmd!15771 from ibuclaw/merge_stable
dlang-bot Nov 1, 2023
c13d0cd
Merge remote-tracking branch 'upstream/master' into stable
ibuclaw Nov 1, 2023
bb3d07c
Fix static AA initialization (dlang/dmd!15744)
schveiguy Nov 2, 2023
e8657dd
Fix 24209 - static aa initialization of static function variable ICE …
dkorpel Nov 2, 2023
f8615e4
Merge remote-tracking branch 'origin/dmd-rewrite-stable' into merge-2…
kinke Nov 4, 2023
4880925
Misc. merge fixes (D)
kinke Nov 5, 2023
a053480
Misc. merge fixes (C++)
kinke Nov 5, 2023
d6d7918
Merge fix: Adapt to removed error/warning members
kinke Nov 5, 2023
d435c8a
Merge fix: Adapt to changed mangleToBuffer() signature
kinke Nov 5, 2023
2b3ffeb
Merge fix: Adapt to removed CommaExp::copy()
kinke Nov 5, 2023
fd66fb4
Merge fix: Restore Scope::search() as C++ function
kinke Nov 5, 2023
6c4c15f
Bump LDC version / frontend version / Phobos submodule
kinke Nov 5, 2023
4f463fa
Enable static initialization of associative arrays
kinke Nov 5, 2023
6595e61
Minimally adapt some new DMD tests for LDC
kinke Nov 6, 2023
1ab3809
Slightly improve error for colliding entry points
kinke Nov 6, 2023
442e6d9
ldmd2: Support new -fIBT switch
kinke Nov 6, 2023
4abf1d3
Restore a does-not-access-parent-context check for constant delegates
kinke Nov 6, 2023
a2bd6a6
Add new CLI option -fno-exceptions (-nothrow for ldmd2)
kinke Nov 6, 2023
406df56
Add new CLI options -fno-moduleinfo and -fno-rtti
kinke Nov 6, 2023
69f2cdd
Add changelog entries
kinke Nov 6, 2023
b76d772
Disable new compilable/test24130.c (MSVC-specific) for LDC
kinke Nov 7, 2023
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
  •  
  •  
  •  
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
# LDC master

#### Big news
- Frontend, druntime and Phobos are at version [2.106.0](https://dlang.org/changelog/2.106.0.html). (#4522)
- New command-line options `-fno-{exceptions,moduleinfo,rtti}` to selectively enable some `-betterC` effects. (#4522)

#### Platform support

Expand Down
6 changes: 3 additions & 3 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -117,10 +117,10 @@ include(GetLinuxDistribution)
#

# Version information
set(LDC_VERSION "1.35.0") # May be overridden by git hash tag
set(LDC_VERSION "1.36.0") # May be overridden by git hash tag
set(DMDFE_MAJOR_VERSION 2)
set(DMDFE_MINOR_VERSION 105)
set(DMDFE_PATCH_VERSION 3)
set(DMDFE_MINOR_VERSION 106)
set(DMDFE_PATCH_VERSION 0)

set(DMD_VERSION ${DMDFE_MAJOR_VERSION}.${DMDFE_MINOR_VERSION}.${DMDFE_PATCH_VERSION})

Expand Down
4 changes: 3 additions & 1 deletion dmd/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,8 @@ Note that these groups have no strict meaning, the category assignments are a bi

| File | Purpose |
|-----------------------------------------------------------------------------|-----------------------------------------------------------------------|
| [mars.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/mars.d) | The entry point. Contains `main`. |
| [main.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/main.d) | The entry point. Contains `main`. |
| [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 |
| [globals.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/globals.d) | Define a structure storing command line options |
Expand Down Expand Up @@ -83,6 +84,7 @@ Note that these groups have no strict meaning, the category assignments are a bi
| [astcodegen.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/astcodegen.d) | Namespace of AST nodes of a AST ready for code generation |
| [astenums.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/astenums.d) | Enums common to DMD and AST |
| [expression.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/expression.d) | Define expression AST nodes |
| [rootobject.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/rootobject.d) | Define an abstract root class |
| [statement.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/statement.d) | Define statement AST nodes |
| [staticassert.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/staticassert.d) | Define a `static assert` AST node |
| [aggregate.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/aggregate.d) | Define an aggregate (`struct`, `union` or `class`) AST node |
Expand Down
4 changes: 2 additions & 2 deletions dmd/access.d
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,8 @@ import dmd.dmodule;
import dmd.dscope;
import dmd.dstruct;
import dmd.dsymbol;
import dmd.errors;
import dmd.expression;
import dmd.globals;
import dmd.location;
import dmd.tokens;

Expand All @@ -48,7 +48,7 @@ bool checkAccess(AggregateDeclaration ad, Loc loc, Scope* sc, Dsymbol smember)

if (!symbolIsVisible(sc, smember))
{
ad.error(loc, "%s `%s` is not accessible", smember.kind(), smember.toChars());
error(loc, "%s `%s` %s `%s` is not accessible", ad.kind(), ad.toPrettyChars(), smember.kind(), smember.toChars());
//printf("smember = %s %s, vis = %d, semanticRun = %d\n",
// smember.kind(), smember.toPrettyChars(), smember.visible() smember.semanticRun);
return true;
Expand Down
205 changes: 111 additions & 94 deletions dmd/aggregate.d
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ import dmd.errors;
import dmd.expression;
import dmd.func;
import dmd.globals;
import dmd.hdrgen;
import dmd.id;
import dmd.identifier;
import dmd.location;
Expand Down Expand Up @@ -64,7 +65,7 @@ enum ClassKind : ubyte
* Returns:
* 0-terminated string for `c`
*/
const(char)* toChars(ClassKind c)
const(char)* toChars(ClassKind c) @safe
{
final switch (c)
{
Expand Down Expand Up @@ -191,7 +192,7 @@ extern (C++) abstract class AggregateDeclaration : ScopeDsymbol
* Returns:
* The total number of fields minus the number of hidden fields.
*/
final size_t nonHiddenFields()
extern (D) final size_t nonHiddenFields()
{
return fields.length - isNested() - (vthis2 !is null);
}
Expand All @@ -201,7 +202,7 @@ extern (C++) abstract class AggregateDeclaration : ScopeDsymbol
* Returns:
* false if failed to determine the size.
*/
final bool determineSize(const ref Loc loc)
extern (D) final bool determineSize(const ref Loc loc)
{
//printf("AggregateDeclaration::determineSize() %s, sizeok = %d\n", toChars(), sizeok);

Expand All @@ -213,7 +214,7 @@ extern (C++) abstract class AggregateDeclaration : ScopeDsymbol

if (!members)
{
error(loc, "unknown size");
.error(loc, "%s `%s` unknown size", kind, toPrettyChars);
return false;
}

Expand Down Expand Up @@ -243,7 +244,7 @@ extern (C++) abstract class AggregateDeclaration : ScopeDsymbol
Lfail:
// There's unresolvable forward reference.
if (type != Type.terror)
error(loc, "no size because of forward reference");
error(loc, "%s `%s` no size because of forward reference", kind, toPrettyChars);
// Don't cache errors from speculative semantic, might be resolvable later.
// https://issues.dlang.org/show_bug.cgi?id=16574
if (!global.gag)
Expand Down Expand Up @@ -337,7 +338,7 @@ extern (C++) abstract class AggregateDeclaration : ScopeDsymbol
else if (v2._init && i < j)
{
.error(v2.loc, "union field `%s` with default initialization `%s` must be before field `%s`",
v2.toChars(), v2._init.toChars(), vd.toChars());
v2.toChars(), dmd.hdrgen.toChars(v2._init), vd.toChars());
errors = true;
}
}
Expand Down Expand Up @@ -452,7 +453,7 @@ extern (C++) abstract class AggregateDeclaration : ScopeDsymbol
assert(!vx._init.isVoidInitializer());
if (vx.inuse) // https://issues.dlang.org/show_bug.cgi?id=18057
{
vx.error(loc, "recursive initialization of field");
.error(loc, "%s `%s` recursive initialization of field", vx.kind(), vx.toPrettyChars());
errors = true;
}
else
Expand Down Expand Up @@ -500,90 +501,6 @@ extern (C++) abstract class AggregateDeclaration : ScopeDsymbol
return !errors;
}

/****************************
* Do byte or word alignment as necessary.
* Align sizes of 0, as we may not know array sizes yet.
* Params:
* alignment = struct alignment that is in effect
* memalignsize = natural alignment of field
* poffset = pointer to offset to be aligned
*/
extern (D) static void alignmember(structalign_t alignment, uint memalignsize, uint* poffset) pure nothrow @safe
{
//debug printf("alignment = %u %d, size = %u, offset = %u\n", alignment.get(), alignment.isPack(), memalignsize, *poffset);
uint alignvalue;

if (alignment.isDefault())
{
// Alignment in Target::fieldalignsize must match what the
// corresponding C compiler's default alignment behavior is.
alignvalue = memalignsize;
}
else if (alignment.isPack()) // #pragma pack semantics
{
alignvalue = alignment.get();
if (memalignsize < alignvalue)
alignvalue = memalignsize; // align to min(memalignsize, alignment)
}
else if (alignment.get() > 1)
{
// Align on alignment boundary, which must be a positive power of 2
alignvalue = alignment.get();
}
else
return;

assert(alignvalue > 0 && !(alignvalue & (alignvalue - 1)));
*poffset = (*poffset + alignvalue - 1) & ~(alignvalue - 1);
}

/****************************************
* Place a field (mem) into an aggregate (agg), which can be a struct, union or class
* Params:
* nextoffset = location just past the end of the previous field in the aggregate.
* Updated to be just past the end of this field to be placed, i.e. the future nextoffset
* memsize = size of field
* memalignsize = natural alignment of field
* alignment = alignment in effect for this field
* paggsize = size of aggregate (updated)
* paggalignsize = alignment of aggregate (updated)
* isunion = the aggregate is a union
* Returns:
* aligned offset to place field at
*
*/
extern (D) static uint placeField(uint* nextoffset, uint memsize, uint memalignsize,
structalign_t alignment, uint* paggsize, uint* paggalignsize, bool isunion)
{
uint ofs = *nextoffset;

const uint actualAlignment =
alignment.isDefault() || alignment.isPack() && memalignsize < alignment.get()
? memalignsize : alignment.get();

// Ensure no overflow
bool overflow;
const sz = addu(memsize, actualAlignment, overflow);
addu(ofs, sz, overflow);
if (overflow) assert(0);

// Skip no-op for noreturn without custom aligment
if (memalignsize != 0 || !alignment.isDefault())
alignmember(alignment, memalignsize, &ofs);

uint memoffset = ofs;
ofs += memsize;
if (ofs > *paggsize)
*paggsize = ofs;
if (!isunion)
*nextoffset = ofs;

if (*paggalignsize < actualAlignment)
*paggalignsize = actualAlignment;

return memoffset;
}

override final Type getType()
{
/* Apply storage classes to forward references. (Issue 22254)
Expand All @@ -608,7 +525,7 @@ extern (C++) abstract class AggregateDeclaration : ScopeDsymbol
}

/// Flag this aggregate as deprecated
final void setDeprecated()
extern (D) final void setDeprecated()
{
this.storage_class |= STC.deprecated_;
}
Expand Down Expand Up @@ -744,7 +661,7 @@ extern (C++) abstract class AggregateDeclaration : ScopeDsymbol
/*******************************************
* Look for constructor declaration.
*/
final Dsymbol searchCtor()
extern (D) final Dsymbol searchCtor()
{
auto s = search(Loc.initial, Id.ctor);
if (s)
Expand All @@ -753,7 +670,7 @@ extern (C++) abstract class AggregateDeclaration : ScopeDsymbol
s.isTemplateDeclaration() ||
s.isOverloadSet()))
{
s.error("is not a constructor; identifiers starting with `__` are reserved for the implementation");
.error(s.loc, "%s `%s` is not a constructor; identifiers starting with `__` are reserved for the implementation", s.kind(), s.toPrettyChars());
errors = true;
s = null;
}
Expand Down Expand Up @@ -846,3 +763,103 @@ int apply(Dsymbol symbol, int function(Dsymbol, void*) fp, void* ctx)

return fp(symbol, ctx);
}

/****************************
* Do byte or word alignment as necessary.
* Align sizes of 0, as we may not know array sizes yet.
* Params:
* alignment = struct alignment that is in effect
* memalignsize = natural alignment of field
* offset = offset to be aligned
* Returns:
* aligned offset
*/
public uint alignmember(structalign_t alignment, uint memalignsize, uint offset) pure nothrow @safe
{
//debug printf("alignment = %u %d, size = %u, offset = %u\n", alignment.get(), alignment.isPack(), memalignsize, offset);
uint alignvalue;

if (alignment.isDefault())
{
// Alignment in Target::fieldalignsize must match what the
// corresponding C compiler's default alignment behavior is.
alignvalue = memalignsize;
}
else if (alignment.isPack()) // #pragma pack semantics
{
alignvalue = alignment.get();
if (memalignsize < alignvalue)
alignvalue = memalignsize; // align to min(memalignsize, alignment)
}
else if (alignment.get() > 1)
{
// Align on alignment boundary, which must be a positive power of 2
alignvalue = alignment.get();
}
else
return offset;

assert(alignvalue && !(alignvalue & (alignvalue - 1))); // non-zero and power of 2
return (offset + alignvalue - 1) & ~(alignvalue - 1);
}

/****************************************
* Place a field (mem) into an aggregate (agg), which can be a struct, union or class
* Params:
* nextoffset = location just past the end of the previous field in the aggregate.
* Updated to be just past the end of this field to be placed, i.e. the future nextoffset
* memsize = size of field
* memalignsize = natural alignment of field
* alignment = alignment in effect for this field
* aggsize = size of aggregate (updated)
* aggalignsize = alignment of aggregate (updated)
* isunion = the aggregate is a union
* Returns:
* aligned offset to place field at
*
*/
public uint placeField(ref uint nextoffset, uint memsize, uint memalignsize,
structalign_t alignment, ref uint aggsize, ref uint aggalignsize, bool isunion) @safe pure nothrow
{
static if (0)
{
printf("placeField() nextoffset: %u\n", nextoffset);
printf(": memsize: %u\n", memsize);
printf(": memalignsize: %u\n", memalignsize);
printf(": alignment: %u\n", alignment.get());
printf(": aggsize: %u\n", aggsize);
printf(": aggalignsize: %u\n", aggalignsize);
printf(": isunion: %d\n", isunion);
}

uint ofs = nextoffset;

const uint actualAlignment =
alignment.isDefault() || alignment.isPack() && memalignsize < alignment.get()
? memalignsize : alignment.get();

// Ensure no overflow for (memsize + actualAlignment + ofs)
bool overflow;
const sz = addu(memsize, actualAlignment, overflow);
addu(ofs, sz, overflow);
if (overflow) assert(0);

// Skip no-op for noreturn without custom aligment
if (memalignsize != 0 || !alignment.isDefault())
ofs = alignmember(alignment, memalignsize, ofs);

uint memoffset = ofs;
ofs += memsize;
if (ofs > aggsize)
aggsize = ofs;
if (!isunion)
{
nextoffset = ofs;
//printf(" revised nextoffset: %u\n", ofs);
}

if (aggalignsize < actualAlignment)
aggalignsize = actualAlignment;

return memoffset;
}
7 changes: 0 additions & 7 deletions dmd/aggregate.h
Original file line number Diff line number Diff line change
Expand Up @@ -114,17 +114,13 @@ class AggregateDeclaration : public ScopeDsymbol

virtual Scope *newScope(Scope *sc);
void setScope(Scope *sc) override final;
size_t nonHiddenFields();
bool determineSize(const Loc &loc);
virtual void finalizeSize() = 0;
uinteger_t size(const Loc &loc) override final;
bool fill(const Loc &loc, Expressions &elements, bool ctorinit);
Type *getType() override final;
bool isDeprecated() const override final; // is aggregate deprecated?
void setDeprecated();
bool isNested() const;
bool isExport() const override final;
Dsymbol *searchCtor();

Visibility visible() override final;

Expand Down Expand Up @@ -289,19 +285,16 @@ class ClassDeclaration : public AggregateDeclaration
const char *toPrettyChars(bool QualifyTypes = false) override;
ClassDeclaration *syntaxCopy(Dsymbol *s) override;
Scope *newScope(Scope *sc) override;
bool isBaseOf2(ClassDeclaration *cd);

#define OFFSET_RUNTIME 0x76543210
#define OFFSET_FWDREF 0x76543211
virtual bool isBaseOf(ClassDeclaration *cd, int *poffset);

bool isBaseInfoComplete();
Dsymbol *search(const Loc &loc, Identifier *ident, int flags = SearchLocalsOnly) override final;
ClassDeclaration *searchBase(Identifier *ident);
void finalizeSize() override;
bool hasMonitor();
bool isFuncHidden(FuncDeclaration *fd);
FuncDeclaration *findFunc(Identifier *ident, TypeFunction *tf);
bool isCOMclass() const;
virtual bool isCOMinterface() const;
bool isCPPclass() const;
Expand Down
Loading