[all-commits] [llvm/llvm-project] cd2382: [ELF] Add context-aware diagnostic functions
Fangrui Song via All-commits
all-commits at lists.llvm.org
Wed Oct 30 23:07:59 PDT 2024
Branch: refs/heads/users/MaskRay/spr/elf-add-context-aware-diagnostic-functions
Home: https://github.com/llvm/llvm-project
Commit: cd2382efe4bcf3243baa8d7d0218afc157df9e7e
https://github.com/llvm/llvm-project/commit/cd2382efe4bcf3243baa8d7d0218afc157df9e7e
Author: Fangrui Song <i at maskray.me>
Date: 2024-10-30 (Wed, 30 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