The argument list for cl::values in command line library should be end with null or clEnumValEnd. But the tutorial page(http://llvm.org/docs/CommandLine.html) doesn’t follow the rule, which would cause program crash during runtime.
I’d send a code review: https://reviews.llvm.org/D33861
Please cc other folks related to this part.
Can anyone help reviewing the code?
I think this revision is pretty important regarding that the command line library is also used in many non-LLVM projects.
It’s nice to provide a correct guideline to whom use the library for the first time.
I don’t see any use case in the codebase adding clEnumValEnd at the end of list (for example, ), I also don’t see there is
clEnumValEnd. Do I miss something here?
Thanks for you reminding, It turns out that the function prototype of cl::values had just changed between 4.x and the current trunk(5.x), and the current version is not null terminated anymore.
(The online reference page http://llvm.org/docs/doxygen/html/CommandLine_8h.html is based on 4.x)
In another word, version of the tutorial page seems to be later than that of the reference page
I would close the issue later
There used to be a ‘clEnumValEnd’ in LLVM v3.9, but it was removed when I updated to v4.0. Is this being re-introduced in v5.0?