rewrite-includes: Rewrite __has_include(_next) to get rid of a host dependency.
This broke e.g. compiling a crash report from a glibc system on Darwin. Sadly, the implementation had to game the lexer a lot as we're not using a real preprocessor here. It also doesn't handle special cases like arbitrary macros in __has_include, but since this macro isn't common outside of clang's headers we can get away with that. Fixes PR14422. Differential Revision: http://llvm-reviews.chandlerc.com/D594 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179616 91177308-0d34-0410-b5e6-96231b3b80d8
Showing
- lib/Rewrite/Frontend/InclusionRewriter.cpp 119 additions, 1 deletionlib/Rewrite/Frontend/InclusionRewriter.cpp
- test/Frontend/Inputs/rewrite-includes8.h 5 additions, 0 deletionstest/Frontend/Inputs/rewrite-includes8.h
- test/Frontend/rewrite-includes-invalid-hasinclude.c 17 additions, 0 deletionstest/Frontend/rewrite-includes-invalid-hasinclude.c
- test/Frontend/rewrite-includes.c 19 additions, 0 deletionstest/Frontend/rewrite-includes.c
test/Frontend/Inputs/rewrite-includes8.h
0 → 100644
Please register or sign in to comment