Author: Jonas Toth
Date: 2022-04-24T17:17:02+02:00
New Revision: 3f0f20366622ee5fd35a1d65d7db5226f5e5751f

URL: 
https://github.com/llvm/llvm-project/commit/3f0f20366622ee5fd35a1d65d7db5226f5e5751f
DIFF: 
https://github.com/llvm/llvm-project/commit/3f0f20366622ee5fd35a1d65d7db5226f5e5751f.diff

LOG: run-clang-tidy: Fix infinite loop on windows

`find_compilation_database` checked only for "/" as exit point, but on Windows, 
this root is impossible.
Fixes #53642

Authored By: Febbe
Reviewed By: JonasToth
Differential Revision: https://reviews.llvm.org/D119481

Added: 
    

Modified: 
    clang-tools-extra/clang-tidy/tool/run-clang-tidy.py

Removed: 
    


################################################################################
diff  --git a/clang-tools-extra/clang-tidy/tool/run-clang-tidy.py 
b/clang-tools-extra/clang-tidy/tool/run-clang-tidy.py
index afe2bfd28554d..9497e0b9f52d3 100755
--- a/clang-tools-extra/clang-tidy/tool/run-clang-tidy.py
+++ b/clang-tools-extra/clang-tidy/tool/run-clang-tidy.py
@@ -73,13 +73,14 @@ def strtobool(val):
 
 def find_compilation_database(path):
   """Adjusts the directory until a compilation database is found."""
-  result = './'
+  result = os.path.realpath('./')
   while not os.path.isfile(os.path.join(result, path)):
-    if os.path.realpath(result) == '/':
+    parent = os.path.dirname(result)
+    if result == parent:
       print('Error: could not find compilation database.')
       sys.exit(1)
-    result += '../'
-  return os.path.realpath(result)
+    result = parent
+  return result
 
 
 def make_absolute(f, directory):


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

Reply via email to