[PATCH] D113106: demangle xcoff label symbol for llvm-nm
James Henderson via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri Nov 5 03:01:42 PDT 2021
jhenderson added inline comments.
================
Comment at: llvm/test/tools/llvm-nm/XCOFF/demangle.test:1
+## Test llvm-nm demangle symbols for XCOFF object files.
+# RUN: llvm-nm --demangle %p/Inputs/test_gcc.o | FileCheck --check-prefix=NM-DEMANGLE %s
----------------
================
Comment at: llvm/tools/llvm-nm/llvm-nm.cpp:636
+static Optional<std::string> demangleXCOFF(StringRef Name) {
+
+ if (!Name.empty() && Name[0] == '.')
----------------
Nit: delete blank line at start of function.
================
Comment at: llvm/tools/llvm-nm/llvm-nm.cpp:637
+
+ if (!Name.empty() && Name[0] == '.')
+ Name = Name.substr(1);
----------------
Can XCOFF symbols have an empty name? If so, you need a test case for this. If not, you don't need a `Name.empty()` check (but you might want some sort of assertion instead).
================
Comment at: llvm/tools/llvm-nm/llvm-nm.cpp:740
if (Demangle) {
- if (Optional<std::string> Opt = demangle(S.Name, MachO))
+ Optional<std::string> (*Fn)(StringRef Name) = demangle;
+ if (Obj.isXCOFF())
----------------
This is okay for now, but I think an `llvm::function_ref` would be better overall, as it allows in the future for other demangle options that take different argument sets. I also, personally, find the `function_ref` signature easier to read than a function pointer.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D113106/new/
https://reviews.llvm.org/D113106
More information about the llvm-commits
mailing list