HomePhabricator

[ASTImporter] Improve handling of incomplete types

Description

[ASTImporter] Improve handling of incomplete types

ASTImporter has some bugs when it's importing types
that themselves come from an ExternalASTSource. This
is exposed particularly in the behavior when
comparing complete TagDecls with forward
declarations. This patch does several things:

  • Adds a test case making sure that conflicting forward-declarations are resolved correctly;
  • Extends the clang-import-test harness to test two-level importing, so that we make sure we complete types when necessary; and
  • Fixes a few bugs I found this way. Failure to complete types was one; however, I also discovered that complete RecordDecls aren't properly added to the redecls chain for existing forward declarations.

Details

Committed
spyffeMay 12 2017, 5:46 PM
Parents
rL302974: [APInt] Fix typo in comment. NFC
Branches
Unknown
Tags
Unknown