perry-ca wrote: > I only made it through the first bit of hte implementation, but parsing > doesn't seem right to me, it doesn't recovery nicely as far as I can tell. > > AS far as the design here, it isn't clear to me how this manages all of the > C++ lookup/scoping/etc, and I don't see how the data structure provided would > fix that. > > Also, you seem to be doing some sort of parse during statement parsing, but > no tests that show what this does/how this works when the scope isn't the > local one? Or when this is in a function definition/etc. > > ALSO: I don't see any template instantiation code, which this would need for > statement/decl level declaration.
This pragma isn't meant to be able to accept all valid C++ declarations. It only accept two forms in the XL C/C++ compiler. These are: - just an identifier. This will match a variable or an function declared as extern "C" (eg. `foo`) - an identifier + an argument list. This will match a basic function declarator. The intent is to accept something like `sin(double)` and no more. This is to match the XL C/C++ behaviour. The system header have pragmas in this form. I am going to remove the code to handle the second form from this PR and focus on providing just the basic identifier form. I'll update the description to reflect this. https://github.com/llvm/llvm-project/pull/141671 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits