<div dir="ltr"><div class="gmail_quote"> > 3. Have you tried the Bye <<a href="https://github.com/llvm/llvm-project/blob/main/llvm/examples/Bye/Bye.cpp" rel="noreferrer" target="_blank">https://github.com/llvm/llvm-project/blob/main/llvm/examples/Bye/Bye.cpp</a>> pass?</div><div class="gmail_quote"><br></div><div class="gmail_quote">Ah, good point. I hadn't. I'll see if I can use that instead. </div><div class="gmail_quote"><br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"></blockquote>> From what I can see, it is not. If you do want to test this flag with a proper pass, then it would be very desirable to extend this patch to Clang and add a test there too. This way your work would benefit both sub-projects,</div><div class="gmail_quote"><br></div><div class="gmail_quote">Ok. It shouldn't be too difficult to create a patch for that. I suppose I can add one and see what the clang community has to say about it. </div><div class="gmail_quote"><br></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Yup. I've tried to fill this gap by creating llvm-tutor <<a href="https://github.com/banach-space/llvm-tutor" rel="noreferrer" target="_blank">https://github.com/banach-space/llvm-tutor</a>> (apologies for shameless self-promotion). </blockquote><div><br></div><div>In the spirit of shameless self-promotion, I have done something [[<a href="https://github.com/tarunprabhu/clang-plugin-examples">https://github.com/tarunprabhu/clang-plugin-examples</a> | similar]] for clang plugins too :-) .</div><div><br></div><div> > CompilerInvocation.cpp deals with "option parsing" and "compiler configuration". FrontendActions.cpp deals with  "running" the compiler. These are very different stages in the compiler executation.</div><div><br></div><div>True, but even with actions, there may be those that would benefit from not failing immediately. For instance, the `ParseArgs()` method in a `PluginASTAction` may also report errors during option parsing that may benefit from deferred failure (although I must confess that I don't know exactly when a `PluginASTAction`'s `ParseArgs()` is run during the compilation process -- in particular, whether it runs during or after the other arguments have been parsed. I think I did trace the path at one point, but I don't remember now). </div></div></div>