llvmbot wrote:

<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-clang-tools-extra

Author: Quan Zhuo (quanzhuo)

<details>
<summary>Changes</summary>

This PR fix https://github.com/clangd/clangd/issues/2573

---
Full diff: https://github.com/llvm/llvm-project/pull/173606.diff


1 Files Affected:

- (modified) clang-tools-extra/clangd/refactor/tweaks/DefineOutline.cpp (+7-2) 


``````````diff
diff --git a/clang-tools-extra/clangd/refactor/tweaks/DefineOutline.cpp 
b/clang-tools-extra/clangd/refactor/tweaks/DefineOutline.cpp
index 45e7adeeefcd9..6e00f37ca83de 100644
--- a/clang-tools-extra/clangd/refactor/tweaks/DefineOutline.cpp
+++ b/clang-tools-extra/clangd/refactor/tweaks/DefineOutline.cpp
@@ -236,8 +236,13 @@ getFunctionSourceCode(const FunctionDecl *FD, const 
DeclContext *TargetContext,
         if (Ref.Qualifier || Ref.Targets.empty() || Ref.NameLoc.isMacroID())
           return;
         // Only qualify return type and function name.
-        if (Ref.NameLoc != FD->getReturnTypeSourceRange().getBegin() &&
-            Ref.NameLoc != FD->getLocation())
+        auto ReturnTypeRange = FD->getReturnTypeSourceRange();
+        if (Ref.NameLoc != FD->getLocation() &&
+            (ReturnTypeRange.isInvalid() ||
+             SM.isBeforeInTranslationUnit(Ref.NameLoc,
+                                          ReturnTypeRange.getBegin()) ||
+             SM.isBeforeInTranslationUnit(ReturnTypeRange.getEnd(),
+                                          Ref.NameLoc)))
           return;
 
         for (const NamedDecl *ND : Ref.Targets) {

``````````

</details>


https://github.com/llvm/llvm-project/pull/173606
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to