[cfe-dev] ASTImporter Tutorial/TechTalk and RoundTable

Gábor Márton via cfe-dev cfe-dev at lists.llvm.org
Thu Oct 17 07:11:33 PDT 2019


At the upcoming LLVM Dev Conf, we will have a round table discussion for
ASTImporter, right after the ASTImporter Tutorial.
The time slot for the round table is Wednesday, Oct 23 2:55-4:00.
I have gathered things about possible future work and improvements, bring
your own topic to discuss!

Thanks and see you at the conference,

Big stuff
- Error handling: rollback mechanism
- Replace `StructuralEquivalency` with ODRHash
  - Step 0: StructuralEquivalency should not diagnose when called from the
    Importer, diags should be coming from the importer.
- ODRViolation handling
  - Class(Var)TemplateSpecializationDecl: Problem! We can't have more than
1 spec
  - VarTemplateSpecializationDecl: ODR violation is not even detected
  - Renaming strategy
- Strategies for AccumulateChildErrors
  Clients of the ASTImporter should be able to choose an
  appropriate error handling strategy for their needs.  For instance,
  they may not want to mark an entire namespace as erroneous merely
  because there is an ODR error with two typedefs.  As another example,
  the client may allow EnumConstantDecls with same names but with
  different values in two distinct translation units.

Smaller issues/tasks/FIXMEs (techn debt)
- VisitFunctionDecl:
  - Member function templates are not handled similarly to simple fun
  - Merge function definitions of members
  - Merge exception specifications
- Handling of inheritable attributes (https://reviews.llvm.org/D68634)
  - Use PrevDecl in `GetImportedOrCreateDecl` ?
- ObjC/ObjC++ support and stabilization
  - No test cases (not interesting for E///, we don't have objc/c++ code)
- ClassTemplateSpecializationDecl: merge instantiated default arguments,
  exceptions specifications
- Structural Eq:
  - Polluted cache of nonequivalent declarations
  - Some diagnostics are completely missing, this is misleading
- Several minor issues/fixmes with VarTemplateDecl
- Check visibility/linkage for ClassTemplateDecl, VarTemplateDecl
- Fix import of equivalent but repeated FriendDecls
- Handle redecl chain of TypeDefNameDecl
- Add Decls to their context in a unified way, and only if the "From"DC
  contains it (`AddDeclToContexts`)
- VisitVarDecl:
  - Check for ODR error if the two definitions have different initializers?
  - Diagnose ODR error if the two initializers are different
- Remove obsolate FIXMEs and TODOs
- Import default arguments of templates

On Mon, Jul 22, 2019 at 6:28 PM Gábor Márton <martongabesz at gmail.com> wrote:

> Hi,
> I am planning to submit a talk about ASTImporter to the upcoming Dev
> Meeting at October 22-23, 2019.
> I'd like to talk about
> - the API,
> - how it is used in CTU analysis and in LLDB,
> - internal subtleties and difficulties (Error handling, ExternalASTSource,
> ...)
> The goal would be to attract more developers to use and improve
> ASTImporter related code, so perhaps this will be a tutorial.
> Independently from the talk, I'd like to have a round table discussion if
> there is enough interest.
> Some topics could cover future development ideas and existing problems we
> have.
> Please get back to me if you are interested and think about the topics you
> have in mind, also don't forget to buy your ticket to the DevMeeting.
> Thanks,
> Gabor
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20191017/c075e9da/attachment.html>

More information about the cfe-dev mailing list