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