[CommandLine] Missing clEnumValEnd for cl::values in tutorial page


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.

Best Regards,
Bekket McClane


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.


Hi Bekket,

I don’t see any use case in the codebase adding clEnumValEnd at the end of list (for example, [1]), I also don’t see there is
clEnumValEnd. Do I miss something here?

[1] http://llvm.org/doxygen/DwarfDebug_8cpp_source.html


Hi chenwj,

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

Best Regards,

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?