mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-18 07:16:40 +00:00
[lld-macho] Fix -no_objc_category_merging flag (#98238)
`-no_objc_category_merging` flag was behaving like `-objc_category_merging` - i.e. acting to enable category merging. This is because we were using `hasArg` instead of `hasFlag` to test for it. Fix this and add test to ensure it behaves as expected.
This commit is contained in:
parent
b96eb76d21
commit
5cb7e49e73
@ -1989,7 +1989,8 @@ bool link(ArrayRef<const char *> argsArr, llvm::raw_ostream &stdoutOS,
|
||||
|
||||
// Category merging uses "->live = false" to erase old category data, so
|
||||
// it has to run after dead-stripping (markLive).
|
||||
if (args.hasArg(OPT_objc_category_merging, OPT_no_objc_category_merging))
|
||||
if (args.hasFlag(OPT_objc_category_merging, OPT_no_objc_category_merging,
|
||||
false))
|
||||
objc::mergeCategories();
|
||||
|
||||
// ICF assumes that all literals have been folded already, so we must run
|
||||
|
@ -8,9 +8,13 @@
|
||||
|
||||
# RUN: llvm-mc -filetype=obj -triple=arm64-apple-macos -o a64_file2.o a64_file2.s
|
||||
# RUN: %lld -arch arm64 -o a64_file2_no_merge.exe a64_file1.dylib a64_file2.o
|
||||
# RUN: %lld -arch arm64 -o a64_file2_no_merge_v2.exe a64_file1.dylib a64_file2.o -no_objc_category_merging
|
||||
# RUN: %lld -arch arm64 -o a64_file2_no_merge_v3.exe a64_file1.dylib a64_file2.o -objc_category_merging -no_objc_category_merging
|
||||
# RUN: %lld -arch arm64 -o a64_file2_merge.exe -objc_category_merging a64_file1.dylib a64_file2.o
|
||||
|
||||
# RUN: llvm-objdump --objc-meta-data --macho a64_file2_no_merge.exe | FileCheck %s --check-prefixes=NO_MERGE_CATS
|
||||
# RUN: llvm-objdump --objc-meta-data --macho a64_file2_no_merge_v2.exe | FileCheck %s --check-prefixes=NO_MERGE_CATS
|
||||
# RUN: llvm-objdump --objc-meta-data --macho a64_file2_no_merge_v3.exe | FileCheck %s --check-prefixes=NO_MERGE_CATS
|
||||
# RUN: llvm-objdump --objc-meta-data --macho a64_file2_merge.exe | FileCheck %s --check-prefixes=MERGE_CATS
|
||||
|
||||
############ Test merging multiple categories into the base class ############
|
||||
|
Loading…
x
Reference in New Issue
Block a user