[all-commits] [llvm/llvm-project] dccc00: [ELF] Add context-aware diagnostic functions
Fangrui Song via All-commits
all-commits at lists.llvm.org
Mon Oct 21 23:01:47 PDT 2024
Branch: refs/heads/users/MaskRay/spr/elf-add-context-aware-diagnostic-functions
Home: https://github.com/llvm/llvm-project
Commit: dccc00a07ba591e0d5b937b0231f30f760003a7c
https://github.com/llvm/llvm-project/commit/dccc00a07ba591e0d5b937b0231f30f760003a7c
Author: Fangrui Song <i at maskray.me>
Date: 2024-10-21 (Mon, 21 Oct 2024)
Changed paths:
M lld/Common/ErrorHandler.cpp
M lld/ELF/Config.h
M lld/ELF/Driver.cpp
M lld/ELF/InputFiles.cpp
M lld/ELF/InputFiles.h
M lld/ELF/Target.cpp
M lld/ELF/Target.h
M lld/include/lld/Common/ErrorHandler.h
Log Message:
-----------
[ELF] Add context-aware diagnostic functions
The current diagnostic functions log/warn/error/fatal lack a context
argument and call the global `lld::errorHandler()`, which prevents
multiple lld instances in one process.
This patch introduces context-aware replacements:
* log => Log(ctx)
* warn => Warn(ctx)
* errorOrWarn => Err(ctx)
* error => ErrAlways(ctx)
* fatal => Fatal(ctx)
Example: `errorOrWarn(toString(f) + "xxx")` => `Err(ctx) << f << "xxx"`.
(`toString(f)` is shortened to `f` as a bonus and may access `ctx`
without accessing the global variable (see `Target.cpp`)).
`ctx.e = &context->e;` can be replaced with a non-global Errorhandler
when `ctx` becomes a local variable.
(For the ELF port, the long term goal is to eliminate `error`. Most can
be straightforwardly converted to `Err(ctx)`.)
Pull Request: https://github.com/llvm/llvm-project/pull/112319
To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications
More information about the All-commits
mailing list