r241140 - -frewrite-includes: Rework how includes and modules are differentiated
Justin Bogner
mail at justinbogner.com
Wed Jul 1 00:21:38 PDT 2015
David Blaikie <dblaikie at gmail.com> writes:
> On Tue, Jun 30, 2015 at 9:40 PM, Justin Bogner <mail at justinbogner.com> wrote:
>
> Author: bogner
> Date: Tue Jun 30 23:40:10 2015
> New Revision: 241140
>
> URL: http://llvm.org/viewvc/llvm-project?rev=241140&view=rev
> Log:
> -frewrite-includes: Rework how includes and modules are differentiated
>
> The map of FileChange structs here was storing two disjoint types of
> information:
>
> 1. A pointer to the Module that an #include directive implicitly
> imported
>
> 2. A FileID and FileType for an included file. These would be left
> uninitialized in the Module case.
>
> This change splits these two kinds of information into their own maps,
> which both simplifies how we access either and avoids the undefined
> behaviour we were hitting due to the uninitialized fields in the
> included file case.
>
> Mostly NFC, but fixes some errors found by self-host with ubsan.
>
> Ideally it'd be nice to have those test cases reduced and committed, so they
> can be found/verified/etc without a full selfhost build later on.
I worded this poorly - the errors were in the test suite (in
Frontend/rewrite-includes-missing.c) when running check-clang with a
self-hosted clang with ubsan enabled.
More information about the cfe-commits
mailing list