Qualifiers on the return type are not ignored in a function declaration
Merges from trunk.
Merge _Optional branch.
Merge from trunk.
No "pointer target lost const qualifier" warning when assigned value originates from array-to-pointer decay
Fixed in the _Optional branch in [r16483].
Fix bug #3953.
Bring _Optional semantics closer to latest TS draft.