martong marked 9 inline comments as done.
martong added inline comments.

================
Comment at: clang/lib/AST/ASTImporter.cpp:3008
+// which is equal to the given DC.
+bool isAncestorDeclContextOf(DeclContext *DC, Decl *D) {
+  DeclContext *DCi = D->getDeclContext();
----------------
a_sidorin wrote:
>  ASTImporter is not very const-friendly, but this function is pure, so I 
> think it's better to const-qualify the parameters.
Ok, added the const qualifiers.


================
Comment at: clang/lib/AST/ASTImporter.cpp:3020
+  QualType FromTy = D->getType();
+  const FunctionProtoType *FromFPT = FromTy->getAs<FunctionProtoType>();
+  if (AutoType *AutoT = FromFPT->getReturnType()->getContainedAutoType()) {
----------------
a_sidorin wrote:
> Is it possible for getAs() to return nullptr at this point?
No. So, I added an assertion to reflect this.


================
Comment at: clang/lib/AST/ASTImporter.cpp:3174
+  bool UsedDifferentProtoType = false;
+  const auto *FromFPT = FromTy->getAs<FunctionProtoType>();
+  if (FromFPT) {
----------------
a_sidorin wrote:
> If FromFPT is not used outside of the condition, we can move the 
> initialization inside if().
Ok, I moved it inside the `if`.


================
Comment at: clang/unittests/AST/ASTImporterTest.cpp:5625
+  // parsed libcxx/src/filesystem/directory_iterator.cpp, but could not reduce
+  // that with creduce, because after preprocessing, the AST no longer
+  // contained the TypeAlias as a return type of the lambda.
----------------
a_sidorin wrote:
> That's interesting. Have you tried '-frewrite-includes' for expanding 
> inclusions only without macro expansion?
I hadn't tried it before, but I've just done that now. Unfortunately, the AST 
produced with `-E -frewrite-includes` produces a type for the operator() that 
already has a canonical type: `long (long) const`

```
) ./bin/clang-check -p cxx_cmd_json 
~w/llvm3/git/llvm-project/libcxx/src/filesystem/directory_iterator.cpp 
-ast-dump -ast-dump-filter "posix_utimes" | ag "CXXMethodDecl.*int_type"        
                                   --- COMMAND ---
  |           | |-CXXMethodDecl 0x3007ec0 <col:30, line:400:3> line:396:18 used 
operator() 'int_type (long) const' inline
  |           | |-CXXMethodDecl 0x30131f0 <col:18, line:400:3> line:396:18 
implicit __invoke 'int_type (long)' static inline
  |           | |-CXXMethodDecl 0x2ddfaf0 <col:30, line:400:3> line:396:18 used 
operator() 'int_type (long) const' inline
  |           | |-CXXMethodDecl 0x2deae20 <col:18, line:400:3> line:396:18 
implicit __invoke 'int_type (long)' static inline
(venv) egbomrt@elx78373d5s|~/WORK/llvm3/build/release_assert
) ./bin/clang-check -p cxx_cmd_json 
~w/llvm3/git/llvm-project/libcxx/src/filesystem/directory_iterator.cpp 
-ast-dump -ast-dump-filter "posix_utimes" | ag "CXXMethodDecl.*operator"
  |           | |-CXXMethodDecl 0x2833020 <col:30, line:400:3> line:396:18 used 
operator() 'int_type (long) const' inline
  |           | |-CXXMethodDecl 0x287fa20 <col:30, line:400:3> line:396:18 used 
operator() 'int_type (long) const' inline
(venv) egbomrt@elx78373d5s|~/WORK/llvm3/build/release_assert
) ./bin/clang -x c++ directory_iterator.cpp.E.orig -fsyntax-only -Xclang 
-ast-dump -Xclang -ast-dump-filter -Xclang posix_utimes | ag 
"CXXMethodDecl.*operator"
  |           | |-CXXMethodDecl 0x31c6ad0 <col:30, line:400:3> line:396:18 used 
operator() 'long (long) const' inline
(venv) egbomrt@elx78373d5s|~/WORK/llvm3/build/release_assert
) ./bin/clang -x c++ directory_iterator.cpp.E.ri -fsyntax-only -Xclang 
-ast-dump -Xclang -ast-dump-filter -Xclang posix_utimes | ag 
"CXXMethodDecl.*operator"
  |           | |-CXXMethodDecl 0x25ad7f0 <col:30, line:400:3> line:396:18 used 
operator() 'long (long) const' inline
```


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D70819/new/

https://reviews.llvm.org/D70819



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to