[cfe-dev] New warning for mismatched include case

Jordan Rose jordan_rose at apple.com
Wed Jul 18 16:06:01 PDT 2012


Sounds like a good idea to me. This should also probably have a fixit.

There is also the unusual case of two headers differing by case and location, and expecting the case to choose them rather than the search path order:

/include/foo.h
/usr/include/Foo.h

#include <Foo.h>
#include <foo.h>
// ^ these will find the same header

I think the fixit is still acceptable here, especially since there is no obvious way to solve this on a case-insensitive filesystem.

Jordan


On Jul 18, 2012, at 15:09 , Jason Haslam <jason.haslam at gmail.com> wrote:

> The attached (incomplete proof-of-concept) patch provides a new warning that fires on case-insensitive file systems when the case of the file name in the #include directive doesn't match the case of the file name on disk. The idea is to avoid broken commits that fail to build on case-sensitive file systems. For example:
> 
> jason$ ls
> test.cpp test.h
> jason$ cat test.cpp
> #include "Test.h"
> jason$ clang++ -fsyntax-only test.cpp 
> test.cpp:1:10: warning: include case does not match the case of the file on disk
> #include "Test.h"
>         ^
> 1 warning generated.
> 
> What do you think? Is this desirable? Does the direction look right?
> 
> Jason
> 
> <include_case.diff>_______________________________________________
> cfe-dev mailing list
> cfe-dev at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev




More information about the cfe-dev mailing list