D-Programming-Language/dmd — pull request #2006 by 9rnsr (2013-05-10 15:10:34+00:00)
Title: Issue 10055 - Incorrect attribute merging in dtor/postblit building

http://d.puremagic.com/issues/show_bug.cgi?id=10055

Implicitly generated destructors and postblits should have *weaken* attributes from field ones and explicitly defined ones.

Example:
```d
struct S1 {
this(this) pure {} // p1
~this() @safe {} // d1
}
struct S2 {
S1 s1;
this(this) @safe {} // p2
~this() nothrow {} // d2
// Compiler will generate __aggrPostblit and __aggrDtor
// for the whole S2 copy construction and destruction.
// __aggrPostblit should have weaken attributes of
// (p1 + p2) == impure throwable @system
// __aggrDtor should have weaken attributes of
// (d1 + d2) == impure throwable @system
}
```