aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Frontend/CompilerInvocation.cpp
diff options
context:
space:
mode:
authorNaveen Seth Hanig <naveen.hanig@outlook.com>2025-05-15 15:36:28 +0200
committerGitHub <noreply@github.com>2025-05-15 09:36:28 -0400
commit636628d8fde45fc2bb99a1016f7503d0e744ab89 (patch)
tree2a1b4ad3a99c058d9b9e9d8c7a6e27379c439ad6 /clang/lib/Frontend/CompilerInvocation.cpp
parenta2f156b84ab124ccfbbe2bd6cbbdb2f3bcbba0ce (diff)
downloadllvm-636628d8fde45fc2bb99a1016f7503d0e744ab89.zip
llvm-636628d8fde45fc2bb99a1016f7503d0e744ab89.tar.gz
llvm-636628d8fde45fc2bb99a1016f7503d0e744ab89.tar.bz2
[clang] Enforce 1-based indexing for command line source locations (#139457)
Fixes #139375 Clang expects command line source locations to be provided using 1-based indexing. Currently, Clang does not reject zero as invalid argument for column or line number, which can cause Clang to crash. This commit extends validation in `ParsedSourceLocation::FromString` to only accept (unsinged) non-zero integers.
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
-rw-r--r--clang/lib/Frontend/CompilerInvocation.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/clang/lib/Frontend/CompilerInvocation.cpp b/clang/lib/Frontend/CompilerInvocation.cpp
index 3945129..fd48e42 100644
--- a/clang/lib/Frontend/CompilerInvocation.cpp
+++ b/clang/lib/Frontend/CompilerInvocation.cpp
@@ -3112,9 +3112,11 @@ static bool ParseFrontendArgs(FrontendOptions &Opts, ArgList &Args,
if (const Arg *A = Args.getLastArg(OPT_code_completion_at)) {
Opts.CodeCompletionAt =
ParsedSourceLocation::FromString(A->getValue());
- if (Opts.CodeCompletionAt.FileName.empty())
+ if (Opts.CodeCompletionAt.FileName.empty()) {
Diags.Report(diag::err_drv_invalid_value)
- << A->getAsString(Args) << A->getValue();
+ << A->getAsString(Args) << A->getValue();
+ Diags.Report(diag::note_command_line_code_loc_requirement);
+ }
}
Opts.Plugins = Args.getAllArgValues(OPT_load);