aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/CodeGen/CodeGenFunction.h
diff options
context:
space:
mode:
authorGeorgii Rymar <grimar@accesssoftek.com>2020-06-11 16:46:56 +0300
committerGeorgii Rymar <grimar@accesssoftek.com>2020-06-15 12:43:16 +0300
commitec4e68e667bf0369c36f0e4291618ef2a614bbf0 (patch)
treead6fa8f6d52e2bd2909fc0116f2887cc6a06bada /clang/lib/CodeGen/CodeGenFunction.h
parent298377f4b0b35366e7a9ccffde0e0684eba37c9b (diff)
downloadllvm-ec4e68e667bf0369c36f0e4291618ef2a614bbf0.zip
llvm-ec4e68e667bf0369c36f0e4291618ef2a614bbf0.tar.gz
llvm-ec4e68e667bf0369c36f0e4291618ef2a614bbf0.tar.bz2
[yaml2obj] - Introduce the "NoHeaders" key for "SectionHeaderTable"
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
Diffstat (limited to 'clang/lib/CodeGen/CodeGenFunction.h')
0 files changed, 0 insertions, 0 deletions