forked from OSchip/llvm-project
ec4e68e667
We have an issue currently. The following YAML piece just ignores the `Excluded` key. ``` SectionHeaderTable: Sections: [] Excluded: - Name: .foo ``` Currently the meaning is: exclude the whole table. The code checks that the `Sections` key is empty and doesn't catch/check invalid/duplicated/missed `Excluded` entries. Also there is no way to exclude all sections except the first null section, because `Sections: []` currently just excludes the whole the sections header table. To fix it, I suggest a change of the behavior. 1) A new `NoHeaders` key is added. It provides an explicit syntax to drop the whole table. 2) The meaning of the following is changed: ``` SectionHeaderTable: Sections: [] Excluded: - Name: .foo ``` Assuming there are 2 sections in the object (a null section and `.foo`), with this patch it means: exclude the `.foo` section, keep the null section. The null section is an implicit section and I think it is reasonable to make "Sections: []" to mean it is implicitly added. It will be consistent with the global "Sections" tag that is used to describe sections. 3) `SectionHeaderTable->Sections` is now optional. No `Sections` is the same as `Sections: []` (I think it avoids a confusion). 4) Using of `NoHeaders` together with `Sections`/`Excluded` is not allowed. 5) It is possible to use the `Excluded` key without the `Sections` key now (in this case `Excluded` must contain all sections). 6) `SectionHeaderTable:` or `SectionHeaderTable: []` is not allowed. 7) When the `SectionHeaderTable` key is present, we still require all sections to be present in `Sections` and `Excluded` lists. No changes here, we are still strict. Differential revision: https://reviews.llvm.org/D81655 |
||
---|---|---|
.. | ||
UpdateTestChecks | ||
dsymutil | ||
gold | ||
llc | ||
llvm-ar | ||
llvm-as | ||
llvm-cfi-verify | ||
llvm-config | ||
llvm-cov | ||
llvm-cvtres | ||
llvm-cxxdump | ||
llvm-cxxfilt | ||
llvm-cxxmap | ||
llvm-diff | ||
llvm-dlltool | ||
llvm-dwarfdump | ||
llvm-dwp | ||
llvm-elfabi | ||
llvm-exegesis | ||
llvm-extract | ||
llvm-gsymutil | ||
llvm-ifs | ||
llvm-isel-fuzzer | ||
llvm-lib | ||
llvm-lipo | ||
llvm-lit | ||
llvm-locstats | ||
llvm-lto | ||
llvm-lto2 | ||
llvm-mc | ||
llvm-mca | ||
llvm-ml | ||
llvm-modextract | ||
llvm-mt | ||
llvm-nm | ||
llvm-objcopy | ||
llvm-objdump | ||
llvm-opt-fuzzer | ||
llvm-opt-report | ||
llvm-pdbutil | ||
llvm-profdata | ||
llvm-ranlib | ||
llvm-rc | ||
llvm-readobj | ||
llvm-size | ||
llvm-split | ||
llvm-strings | ||
llvm-symbolizer | ||
llvm-xray | ||
lto | ||
obj2yaml | ||
opt-viewer | ||
sancov | ||
sanstats | ||
yaml2obj |