bwendling wrote:

Howdy!

This is essentially a complete rewrite of 
00b6d032a22196bc14e4e30e413c040eb1b65da4. The original was overly complex and 
fragile. The main difference with this PR is basing the calculations off of the 
already emitted `Expr` instead of doing it within this function. It allows the 
Visitor to skip past pretty much everything to find the first `MemberExpr`. 
Note, we don't perform the calculation on the whole struct (i.e. `__bdos(ptr)`) 
due to issues with GCC compatibility, so the Visitor isn't concerned about any 
other `Expr` type but a `MemberExpr`.

The testcase changes are pretty large, but I visually reviewed the changes and 
ran the resulting code and it worked produced the expected results. (It even 
uncovered a bug! :-D)

Please take a look and let me know any issues you have. It's mostly an NFC 
patch, but it's so large and invasive that I can't really mark it as such.

https://github.com/llvm/llvm-project/pull/122198
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to