Do you have commit access?
I don't think you need to introduce an option for this. You can give the __start_ and __stop_ symbols hidden visibility in any object file, and the symbols in the final output file will be hidden because the linker will choose the most restrictive visibility that it sees for the visibility of the symbols in the final output file.
However, it's still useful to define them as hidden in many contexts.
Made following changes:
- added more tests for checking diagnostic error messages.
- added initialization of modifiers' location in OMPMapClause.
- improved variable names to depict multiple modifiers as opposed to a single modifier.
- improved comments.
Reverted in rC349233 - fails on a Windows buildbot (http://lab.llvm.org:8011/builders/clang-x64-windows-msvc/builds/2642/steps/annotate/logs/stdio).