<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Brent Pappas on The Trail of Bits Blog</title><link>https://miscreants.github.io/blog.trailofbits.com/authors/brent-pappas/</link><description>Recent content in Brent Pappas on The Trail of Bits Blog</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Mon, 11 Sep 2023 08:00:12 -0400</lastBuildDate><atom:link href="https://miscreants.github.io/blog.trailofbits.com/authors/brent-pappas/index.xml" rel="self" type="application/rss+xml"/><item><title>Holy Macroni! A recipe for progressive language enhancement</title><link>https://miscreants.github.io/blog.trailofbits.com/2023/09/11/holy-macroni-a-recipe-for-progressive-language-enhancement/</link><pubDate>Mon, 11 Sep 2023 08:00:12 -0400</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2023/09/11/holy-macroni-a-recipe-for-progressive-language-enhancement/</guid><description>Despite its use for refactoring and static analysis tooling, Clang has a massive shortcoming: the Clang AST does not provide provenance information about which CPP macro expansions a given AST node is expanded from; nor does it lower macro expansions down to LLVM Intermediate Representation (IR) code. This makes the construction of […]</description></item></channel></rss>