https://github.com/loumalouomega updated https://github.com/llvm/llvm-project/pull/127066
From 6c210298a5aab4eeb0d155534d739e21ba315469 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vicente=20Mataix=20Ferr=C3=A1ndiz?= <vmat...@altair.com> Date: Thu, 13 Feb 2025 15:28:30 +0100 Subject: [PATCH 1/5] [tool] Remove legacy argument `-ignore-insert-conflict` from `run-clang-tidy.py` --- clang-tools-extra/clang-tidy/tool/run-clang-tidy.py | 1 - 1 file changed, 1 deletion(-) 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 f1b934f7139e9..acee87c860aa0 100755 --- a/clang-tools-extra/clang-tidy/tool/run-clang-tidy.py +++ b/clang-tools-extra/clang-tidy/tool/run-clang-tidy.py @@ -200,7 +200,6 @@ def apply_fixes( ) -> None: """Calls clang-apply-fixes on a given directory.""" invocation = [clang_apply_replacements_binary] - invocation.append("-ignore-insert-conflict") if args.format: invocation.append("-format") if args.style: From 65adc60c634d93eb2186ddb18ada0131698bcabe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vicente=20Mataix=20Ferr=C3=A1ndiz?= <vmat...@altair.com> Date: Fri, 14 Feb 2025 09:35:47 +0100 Subject: [PATCH 2/5] Optional --- clang-tools-extra/clang-tidy/tool/run-clang-tidy.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) 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 acee87c860aa0..3301cf5a84a93 100755 --- a/clang-tools-extra/clang-tidy/tool/run-clang-tidy.py +++ b/clang-tools-extra/clang-tidy/tool/run-clang-tidy.py @@ -198,8 +198,12 @@ def find_binary(arg: str, name: str, build_path: str) -> str: def apply_fixes( args: argparse.Namespace, clang_apply_replacements_binary: str, tmpdir: str ) -> None: - """Calls clang-apply-fixes on a given directory.""" + """Calls clang-apply-replacements on a given directory.""" invocation = [clang_apply_replacements_binary] + + if args.ignore_insert_conflict: # Only append if the user specified it + invocation.append("-ignore-insert-conflict") + if args.format: invocation.append("-format") if args.style: @@ -445,6 +449,11 @@ async def main() -> None: action="store_true", help="Allow empty enabled checks.", ) + parser.add_argument( + "-ignore-insert-conflict", + action="store_true", + help="Ignore insert conflict when applying fixes.", + ) args = parser.parse_args() db_path = "compile_commands.json" From 89e2b4d227990968e909dbc88eaef27a93643d13 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vicente=20Mataix=20Ferr=C3=A1ndiz?= <vmat...@altair.com> Date: Fri, 14 Feb 2025 12:20:05 +0100 Subject: [PATCH 3/5] Suggestions --- clang-tools-extra/clang-tidy/tool/run-clang-tidy.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) 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 3301cf5a84a93..090c99a8f049f 100755 --- a/clang-tools-extra/clang-tidy/tool/run-clang-tidy.py +++ b/clang-tools-extra/clang-tidy/tool/run-clang-tidy.py @@ -201,9 +201,8 @@ def apply_fixes( """Calls clang-apply-replacements on a given directory.""" invocation = [clang_apply_replacements_binary] - if args.ignore_insert_conflict: # Only append if the user specified it + if args.ignore_insert_conflict: invocation.append("-ignore-insert-conflict") - if args.format: invocation.append("-format") if args.style: From e8165bc2a8db2f4101d8e65f5d93cdb2c4a272d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vicente=20Mataix=20Ferr=C3=A1ndiz?= <vmat...@altair.com> Date: Fri, 14 Feb 2025 12:25:07 +0100 Subject: [PATCH 4/5] [clang-tidy] Preserve current behaviour in `run-clang-tidy.py` --- clang-tools-extra/clang-tidy/tool/run-clang-tidy.py | 1 + 1 file changed, 1 insertion(+) 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 090c99a8f049f..89f55f33a578e 100755 --- a/clang-tools-extra/clang-tidy/tool/run-clang-tidy.py +++ b/clang-tools-extra/clang-tidy/tool/run-clang-tidy.py @@ -451,6 +451,7 @@ async def main() -> None: parser.add_argument( "-ignore-insert-conflict", action="store_true", + default=True, help="Ignore insert conflict when applying fixes.", ) args = parser.parse_args() From b1b52865fef30fb2bef19a6725ed9e987f85c70b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vicente=20Mataix=20Ferr=C3=A1ndiz?= <vmat...@altair.com> Date: Mon, 17 Feb 2025 12:18:55 +0100 Subject: [PATCH 5/5] [clang-tidy] Check for `-ignore-insert-conflict` support before using it in `apply_fixes` in `run_clang_tidy.py` --- .../clang-tidy/tool/run-clang-tidy.py | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) 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 89f55f33a578e..c1daf90265447 100755 --- a/clang-tools-extra/clang-tidy/tool/run-clang-tidy.py +++ b/clang-tools-extra/clang-tidy/tool/run-clang-tidy.py @@ -195,13 +195,22 @@ def find_binary(arg: str, name: str, build_path: str) -> str: raise SystemExit(f"error: failed to find {name} in $PATH or at {built_path}") +def supports_flag(binary: str, flag: str) -> bool: + """Checks if a given flag is supported by the binary by running --help.""" + try: + result = subprocess.run( + [binary, "--help"], capture_output=True, text=True, check=True + ) + return flag in result.stdout + except (subprocess.CalledProcessError, FileNotFoundError): + return False # Binary not found or error running it + def apply_fixes( args: argparse.Namespace, clang_apply_replacements_binary: str, tmpdir: str ) -> None: """Calls clang-apply-replacements on a given directory.""" invocation = [clang_apply_replacements_binary] - - if args.ignore_insert_conflict: + if supports_flag(clang_apply_replacements_binary, "-ignore-insert-conflict"): invocation.append("-ignore-insert-conflict") if args.format: invocation.append("-format") @@ -448,12 +457,6 @@ async def main() -> None: action="store_true", help="Allow empty enabled checks.", ) - parser.add_argument( - "-ignore-insert-conflict", - action="store_true", - default=True, - help="Ignore insert conflict when applying fixes.", - ) args = parser.parse_args() db_path = "compile_commands.json" _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits