www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.announce - LDC 1.33.0-beta2

reply kinke <noone nowhere.com> writes:
Glad to announce the second beta for LDC 1.33. Major changes 
since beta1:

- New CLI option `-femit-local-var-lifetime` to enable stack 
memory reuse.
- C files are now automatically preprocessed using the external C 
compiler.
- Less pedantic checks for conflicting C(++) function 
declarations ('Error: Function type does not match previously 
declared function with the same mangled name').

Full release log and downloads: 
https://github.com/ldc-developers/ldc/releases/tag/v1.33.0-beta2

Please help test, and thanks to all contributors & sponsors!
Jun 10 2023
parent Johan <j j.nl> writes:
On Sunday, 11 June 2023 at 02:06:31 UTC, kinke wrote:
 Glad to announce the second beta for LDC 1.33. Major changes 
 since beta1:

 - New CLI option `-femit-local-var-lifetime` to enable stack 
 memory reuse.
For people testing this release, please enable this flag on your projects. It is disabled by default because it enables aggressive optimizations which may uncover latent bugs in your code: use of variable after its scope has ended. An example: ``` void useAfterScope() { int* p; { int x = 0; p = &x; // cannot statically disallow this because *p = 1; // this is a valid use of things } *p = 5; // but when you do this... stack use after scope bug! } ``` Use of AddressSanitizer with `-femit-local-var-lifetime` would catch this bug. cheers, Johan
Jul 11 2023