[Sema] Fix a use-after-deallocate of a ParsedAttr
moveAttrFromListToList only makes sense when moving an attribute to a list with
a pool that's either equivalent, or has a shorter lifetime. Therefore, using it
to move a ParsedAttr from a declarator to a declaration specifier doesn't make
sense, since the declaration specifier's pool outlives the declarator's. The
patch adds a new function, ParsedAttributes::takeOneFrom, which transfers the
attribute from one pool to another, fixing the use-after-deallocate.
rdar://
49175426
Differential revision: https://reviews.llvm.org/D60101
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@357516
91177308-0d34-0410-b5e6-
96231b3b80d8