rsmith added a comment.

I'm a little concerned about the possibility of this breaking uses of this 
feature on platforms where Clang is the system compiler. For instance, this 
pattern would be broken by your change:

  // stddef.h
  #include "stddef-helper.h"
  
  // stddef-helper.h
  #include_next <stddef.h>

Conversely, I don't think any important library is likely to be relying on the 
GCC behavior, because compilations with "gcc -I-" would get the current Clang 
behavior (because relative-looking paths would be found in the relevant include 
search path rather than as relative paths).

Is there some way we can gain confidence we're not breaking things here?


================
Comment at: include/clang/Basic/DiagnosticLexKinds.td:268-269
@@ -267,4 +267,4 @@
   "the #__include_macros directive is only for internal use by -imacros">;
-def pp_include_next_absolute_path : Warning<
-  "#include_next with absolute path">,
+def pp_include_next_without_state : Warning<
+  "#include_next without previous state, searching from the beginning of the 
include directories list">,
   InGroup<DiagGroup<"include-next-absolute-path">>;
----------------
Can you distinguish between the two cases here and give better diagnostics for 
both?

  "#include_next in file found by relative path, searching from [...]"
  "#include_next with absolute path, searching from [...]"

would be an improvement on this.


http://reviews.llvm.org/D18641



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to