Skip to content

fix Issue 13537 - Unions may break immutability#5940

Merged
andralex merged 1 commit intodlang:masterfrom
WalterBright:fix13537
Jul 19, 2016
Merged

fix Issue 13537 - Unions may break immutability#5940
andralex merged 1 commit intodlang:masterfrom
WalterBright:fix13537

Conversation

@WalterBright
Copy link
Member

Reboot of #5467 which is incomplete.

I'm not satisfied with this yet, it's a WIP.

@dlang-bot
Copy link
Contributor

Fix Bugzilla Description
13537 Unions may break immutability

@WalterBright
Copy link
Member Author

Ready to go when blockers are fixed.

return false;

if (!sc.func.isSafeBypassingInference())
return false;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No value added by doing these separately.

if (sc.intypeof || !sc.func || !sc.func.isSafeBypassingInference)
    return false;

@andralex
Copy link
Member

Auto-merge toggled on

@andralex andralex merged commit 7207737 into dlang:master Jul 19, 2016
@quickfur
Copy link
Member

Nice!

@WalterBright WalterBright deleted the fix13537 branch July 20, 2016 03:35
PetarKirov added a commit to PetarKirov/D-YAML that referenced this pull request Nov 4, 2016
The following DMD PRs added more rigorous safety checks directly
affecting this project:
* dlang/dmd#5852 (fix Issue 15399 - unaligned pointers are not
  `@safe`) - triggered at line:
  https://github.com/kiith-sa/D-YAML/blob/v0.5.3/source/dyaml/emitter.d#L1011

* dlang/dmd#5940 (Unions may break immutability / unions with
  pointers are un-`@safe` ) - triggered at line:
  https://github.com/kiith-sa/D-YAML/blob/v0.5.3/source/dyaml/event.d#L230

* dlang/dmd#5876 (Casting from `void[]` to `T[]` is erroneously
  considered `@safe`) - triggered at line:
  https://github.com/kiith-sa/D-YAML/blob/v0.5.3/source/dyaml/loader.d#L186

* dlang/dmd#5860 (array.ptr in @safe code may point past end
  of array) - triggered at line:
  https://github.com/kiith-sa/D-YAML/blob/v0.5.3/source/dyaml/zerostring.d#L35
PetarKirov added a commit to PetarKirov/D-YAML that referenced this pull request Nov 4, 2016
The following DMD PRs added more rigorous safety checks directly
affecting this project:
* dlang/dmd#5852 (fix Issue 15399 - unaligned pointers are not
  `@safe`) - triggered at line:
  https://github.com/kiith-sa/D-YAML/blob/v0.5.3/source/dyaml/emitter.d#L1011

* dlang/dmd#5940 (Unions may break immutability / unions with
  pointers are un-`@safe` ) - triggered at line:
  https://github.com/kiith-sa/D-YAML/blob/v0.5.3/source/dyaml/event.d#L230

* dlang/dmd#5876 (Casting from `void[]` to `T[]` is erroneously
  considered `@safe`) - triggered at line:
  https://github.com/kiith-sa/D-YAML/blob/v0.5.3/source/dyaml/loader.d#L186

* dlang/dmd#5860 (array.ptr in @safe code may point past end
  of array) - triggered at line:
  https://github.com/kiith-sa/D-YAML/blob/v0.5.3/source/dyaml/zerostring.d#L35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants