[PATCH] D73821: [yaml2obj] Support enumeration() with context and add -D e_machine= to override the value in YAML
    George Rimar via Phabricator via llvm-commits 
    llvm-commits at lists.llvm.org
       
    Mon Feb  3 01:41:22 PST 2020
    
    
  
grimar added a comment.
Sorry, but I'd probably prefer to have a different approach.
Something that works like a preprocessor. We could have:
  --- !ELF
  FileHeader:
    [[FOO]]:   ELFCLASS32
    Data:    ELFDATA2LSB
    Type:    ET_REL
    Machine: [[MACHINE]]
And then have a code that replaces `[[MACHINE]]', '[[FOO]]' strings in the input data
with something that is specified with `-D` option. e.g.
  yaml2obj -DMACHINE="XXX" -DFOO="Class"
gives
  --- !ELF
  FileHeader:
    Class:   ELFCLASS32
    Data:    ELFDATA2LSB
    Type:    ET_REL
    Machine: XXX
It is much more generic (can be used for all targets, fields, etc), and it should be much simpler to implement.
As a bonus we will be able to modify any part of the YAML. It also makes inputs to be more clear,
because currently it is not obvious that some part is overridable.
And I do not have any concerns about the fact we modify the input YAML description here,
because the usage of such construction is limited to our test cases
and we should not met issues with it. When there is no `-D` option given, no preprocessing should happen. Should be safe enough.
Repository:
  rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D73821/new/
https://reviews.llvm.org/D73821
    
    
More information about the llvm-commits
mailing list