shafik added a comment.

In D58743#1413249 <https://reviews.llvm.org/D58743#1413249>, @lebedev.ri wrote:

> Is there a test missing here?


This origin of this fix is the LLDB expression parsing issue. We were not able 
to reduce to a test we could put in `ASTImpoterTest.cpp` but we have a LLDB 
test that exercises this issue and will pass once this fix is in place.

See this differential https://reviews.llvm.org/D58790



================
Comment at: lib/AST/ASTImporter.cpp:8284
+    
+    if (!isBuiltin) {
+       // Include location of this file.
----------------
balazske wrote:
> The `Cache` can be moved into this block and the block to `else if`.
I am not sure I understand what you are asking. Do you mean just duplicate the 

    const SrcMgr::ContentCache *Cache = FromSLoc.getFile().getContentCache();

in both blocks?


================
Comment at: lib/AST/ASTImporter.cpp:8301
+            ToID = ToSM.createFileID(Entry, ToIncludeLoc,
+                                     
FromSLoc.getFile().getFileCharacteristic());
+        }
----------------
balazske wrote:
> Is it possible that in the `isBuiltin` true case this part of the code does 
> run (always) without assertion or other error and the result is always an 
> invalid `ToID`? (If yes the whole change is not needed, so I want to know 
> what was the reason for this change, was there any crash or bug.)
This change was the result of a assert where evaluating an expression resulted 
in the built-in being imported and it would assert in `SourceManager` when when 
`Import(SourceLocation....)`   attempted `getDecomposedLoc`  at the next step.

AFAICT the The Preprocessor sets it up the buffer 
[here](https://github.com/llvm-mirror/clang/blob/master/lib/Lex/Preprocessor.cpp#L552)
 and then creates the `FileID` for in the `SourceManager` and copying over the 
buffer should be the correct thing to do since that seems to be sufficient. 

I also while testing verified that the `BufferIndetifer()` did indeed equal 
`"<built-in>"` similar to [this 
check](https://github.com/llvm-mirror/clang/blob/master/lib/Basic/SourceManager.cpp#L2009)
 in `SourceManager`.



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

https://reviews.llvm.org/D58743



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

Reply via email to