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

merge stable #11118

Merged
merged 23 commits into from May 9, 2020
Merged

merge stable #11118

merged 23 commits into from May 9, 2020

Conversation

MartinNowak
Copy link
Member

  • bump VERSION to v2.092.0-rc.1
  • Revert "Fix Issues 20718, 15867, 12380 - Wrong location errors on const. folding / exp. optimization"
  • Fix Issue 20795 - [dip1000] segfault on templated opEquals
  • [squash] Move state to Target (where it can be reset via Target.deinitialize())
  • Prevent redundant type semantic for va_list
  • Fix issue 20779: compiler segfaults when struct contains itself When working with metaprogramming, the error message saying that the struct should not contain itself can get swallowed by gagging. In this case, only the segfault remains, leading to an unsatisfactory user experience. Fix the segfault by breaking the infinite recursion.
  • [stable] dmd.dsymbolsem: Fix va_list check for pragma([printf,scanf]) ([stable] dmd.dsymbolsem: Fix va_list check for pragma([printf,scanf]) #11068)
  • Add dmd.argtypes_aarch64 for the AAPCS64 ABI
  • Introduce TypeTuple.empty global to prevent creating lots of empty TypeTuples
  • Replace StructDeclaration.arg{1,2}type by a .argTypes TypeTuple
  • dmd.root.filename: Restore C++ absolute() / ext() versions
  • Fix C++ header regressions
  • Tests
  • Fix Issues 20718, 15867, 12380 - Wrong location errors on const. folding / exp. optimization

BorisCarvajal and others added 23 commits April 2, 2020 05:04
As LDC uses them. They hadn't been removed from the C++ header yet.
[stable] dmd.root.filename: Restore C++ absolute() / ext() versions
merged-on-behalf-of: Nicholas Wilson <thewilsonator@users.noreply.github.com>
[stable] Fix C++ header regressions
merged-on-behalf-of: Nicholas Wilson <thewilsonator@users.noreply.github.com>
As a maximum of 2 argTypes is x86-centric; e.g., AArch64 supports up to
4 SIMD registers for a single (HFVA) type.
…peTuples

As each of those empty instances heap-allocates a new Array as well.
Similar to Loc.initial (which can be marked as const though because it's
a struct, whereas the current code cannot handle a const TypeTuple ref).
Of course unused by DMD, but required for LDC.

Returning a static array for HFVAs and small PODs stems from LDC's
requirements to make LLVM happy.
…dlang#11068)

* dmd.dsymbolsem: Fix va_list check for pragma([printf,scanf])

E.g., `va_list` is a struct for non-Apple ARM targets.
When working with metaprogramming, the error message saying that the
struct should not contain itself can get swallowed by gagging.
In this case, only the segfault remains, leading to an unsatisfactory
user experience. Fix the segfault by breaking the infinite recursion.
…egfault-with-circular-struct-type

Fix issue 20779: compiler segfaults when struct contains itself
merged-on-behalf-of: Nicholas Wilson <thewilsonator@users.noreply.github.com>
[stable] Add dmd.argtypes_aarch64 for the AAPCS64 ABI
merged-on-behalf-of: Iain Buclaw <ibuclaw@gdcproject.org>
When checking for pragma(printf/scanf). Also use a resolved type when
declaring `_argptr` (required for LDC).
[stable] Prevent redundant type semantic for va_list
merged-on-behalf-of: Iain Buclaw <ibuclaw@gdcproject.org>
Fix Issue 20795 - [dip1000] segfault on templated opEquals
Fix Issues 20718, 15867, 12380 - Wrong location errors on const. folding / exp. optimization
merged-on-behalf-of: Nicholas Wilson <thewilsonator@users.noreply.github.com>
Revert "Fix Issues 20718, 15867, 12380 - Wrong location errors on const. folding / exp. optimization"
merged-on-behalf-of: Florian <moonlightsentinel@disroot.org>
@dlang-bot
Copy link
Contributor

Thanks for your pull request, @MartinNowak!

Bugzilla references

Auto-close Bugzilla Severity Description
12380 normal Wrong line number for type mismatch with enum .init assignment
15867 minor Compiler reports wrong error location for immutability error
20718 regression enum type mismatch causes wrong location on error
20779 minor Segfault when self-containing struct is accessed from inside in a __traits(compiles) context
20795 normal [dip1000] segfault on templated opEquals

Testing this PR locally

If you don't have a local development environment setup, you can use Digger to test this PR:

dub run digger -- build "master + dmd#11118"

@dlang-bot dlang-bot merged commit 164527b into dlang:master May 9, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
9 participants