(adding back cfe-commits, answers inline) On 6/8/16, 10:11 AM, "tha...@google.com on behalf of Nico Weber" <tha...@google.com on behalf of tha...@chromium.org> wrote: >Sounds like "commit to the current file case and fix all the world's includes" >then :-) (MinGW's windows headers have different case than MSVC's, making this >extra annoying.) > >Maybe this warning could be keyed off -fmsc-version in clang-cl then and only >be enabled there once a future MSVC with headers where this is fixed has been >deployed and is picked via -fmsc-version?
I just changed the patch so that #includes to headers found in system include paths do not trigger this warning by default (unless the header is a known “portable” header – i.e., standard C/C++/Posix or Boost headers). This shouldn’t be an issue anymore. >Eric, do you think you could send Stephan a list of #includes in Windows >headers that would need changing? Since warnings are not emitted from within system headers, and since badly-cased #includes of WinSDK headers will no longer warn by default, is this still an issue? I don’t have an easy way to generate this list. >(any reason cfe-commits got dropped from the cc list? This would be good to >discuss on-thread.) > >On Tue, Jun 7, 2016 at 6:42 PM, Stephan T. Lavavej ><s...@exchange.microsoft.com> wrote: >>Knowing Windows, there is probably no way that they would change the case on >>disk on the headers, as that would be observable to directory enumeration. >> >>STL >> >>From: tha...@google.com [mailto:tha...@google.com] On Behalf Of Nico Weber >>Sent: Tuesday, June 7, 2016 3:40 PM >>To: Stephan T. Lavavej <s...@exchange.microsoft.com> >>Cc: Eric Niebler <enieb...@fb.com>; Taewook Oh <t...@fb.com> >>Subject: Re: r271708 - Use the name of the file on disk to issue a new >>diagnostic about non-portable #include and #import paths. >> >>>STL: "Make sure all filenames have lower-case names and all #includes refer >>>to them by lower-case name, and tell all users to include files by lower >>>case" is probably the only SDK change that's simple enough that it has a >>>chance to be understood and to actually happen. (The other alternative is >>>>>>"commit to keep the case of each SDK header as-is forever, and ask every >>>client to use the on-disk casing, which unless they use a compiler with a >>>warning like this they'll have to look up themselves" -- and at the moment I >>>think the on-disk case of windows.h is Windows.h while every program I >>>>>>know of includes it as <windows.h>, so this would require changing >>>decades of existing code.) >>> >>>On Tue, Jun 7, 2016 at 12:57 PM, Stephan T. Lavavej >>><s...@exchange.microsoft.com> wrote: >>>>Sure, but it's time consuming to figure out a build, and I have a limited >>>>amount of time to donate. >>>> >>>>On the other hand, if this gets into trunk and eventually Clang/C2, at that >>>>point auditing the headers would be pretty easy over here. >>>> >>>>STL >>>> >>>>-----Original Message----- >>>>From: Eric Niebler [mailto:enieb...@fb.com] >>>>Sent: Tuesday, June 7, 2016 9:00 AM >>>>To: Stephan T. Lavavej <s...@exchange.microsoft.com>; Nico Weber >>>><tha...@chromium.org> >>>>Cc: Taewook Oh <t...@fb.com> >>>>Subject: Re: r271708 - Use the name of the file on disk to issue a new >>>>diagnostic about non-portable #include and #import paths. >>>> >>>>>Someone who builds and distributes their own mingw distribution can figure >>>>>out how to build clang. ☺ The directions are here: >>>>>http://clang.llvm.org/get_started.html. I’m happy to answer any questions. >>>>> >>>>>\e >>>>> >>>>>On 6/6/16, 5:54 PM, "Stephan T. Lavavej" <s...@exchange.microsoft.com> >>>>>wrote: >>>>>>Unfortunately, I haven't figured out how to build Clang/LLVM (all of my >>>>>>Clang work is with Clang/C2 which they build for me). >>>>>> >>>>>>STL >>>>>> >>>>>>-----Original Message----- >>>>>>From: Eric Niebler [mailto:enieb...@fb.com] >>>>>>Sent: Monday, June 6, 2016 3:19 PM >>>>>>To: Stephan T. Lavavej <s...@exchange.microsoft.com>; Nico Weber >>>>>><tha...@chromium.org> >>>>>>Cc: Taewook Oh <t...@fb.com> >>>>>>Subject: Re: r271708 - Use the name of the file on disk to issue a new >>>>>>diagnostic about non-portable #include and #import paths. >>>>>> >>>>>>On 6/3/16, 5:17 PM, "Stephan T. Lavavej" <s...@exchange.microsoft.com> >>>>>>wrote: >>>>>>> [Eric Niebler] >>>>>>>> Once I sort out the -imsvc thing, how bad would it be to leave it >>>>>>>> alone? >>>>>>>> Probably pretty bad for folks in the Windows world, huh? >>>>>>> >>>>>>> If you can send me an explicit list of WinSDK headers that are >>>>>>> including things with the wrong case, I can send it to Windows - they >>>>>>> are committed to cleaning up the WinSDK in order to make it friendlier >>>>>>> to other tools. >>>>>>> >>>>>>> Note that we can't go back in time and fix the shipped SDKs, though. >>>>>> >>>>>>It would actually be easier for you to generate this list than for me >>>>>>since I’m not set up to build anything with the Windows SDK. Check out >>>>>>the llvm/clang sources and apply the two linked patches. Configure and >>>>>>build. Then just use clang as normal and watch the warnings roll. >>>>>> >>>>>>http://reviews.llvm.org/D19842 >>>>>>http://reviews.llvm.org/D19843 >>>>>> >>>>>>The warnings tell you exactly what to change the #include to, so this >>>>>>should be easy pickin’s. >>>>>> >>>>>>Eric _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits