This is an archive of the discontinued LLVM Phabricator instance.

[clang] Add ElaboratedType sugaring for types on implicit special members
ClosedPublic

Authored by brad.king on Jan 10 2023, 3:46 PM.

Details

Summary

Extend the change from commit 15f3cd6bfc67 ([clang] Implement
ElaboratedType sugaring for types written bare, 2021-10-11, D112374)
to cover types in the signatures of implicit copy-constructor,
copy-assignment, move-constructor, and move-assignment members in
C++ record types.

With this fix, diagnostic messages print types of special members
consistently whether they are explicitly or implicitly defined.

Fixes: https://github.com/llvm/llvm-project/issues/59557

Diff Detail

Event Timeline

brad.king created this revision.Jan 10 2023, 3:46 PM
Herald added a project: Restricted Project. · View Herald TranscriptJan 10 2023, 3:46 PM
Herald added a subscriber: arphaman. · View Herald Transcript
brad.king requested review of this revision.Jan 10 2023, 3:46 PM
Herald added a project: Restricted Project. · View Herald TranscriptJan 10 2023, 3:46 PM
Herald added a subscriber: cfe-commits. · View Herald Transcript
brad.king updated this revision to Diff 488021.Jan 10 2023, 3:56 PM
brad.king edited the summary of this revision. (Show Details)

Clarify commit message

Revise the message to clarify the changes are for implicitly
generated members.

Also link to the corresponding issue with a full URL.

rsmith accepted this revision.Jan 18 2023, 1:01 PM

This makes sense to me, and it looks like the memory impact from the extra type nodes should be relatively small.

This revision is now accepted and ready to land.Jan 18 2023, 1:01 PM

Thanks rsmith! Since I do not have commit privileges, can you land this for me, please?