Opened 10 years ago
Closed 10 years ago
#6838 closed Bugs (fixed)
Adding include file with force_include makes Wave fail to emit #line directive
Reported by: | Owned by: | Hartmut Kaiser | |
---|---|---|---|
Milestone: | To Be Determined | Component: | wave |
Version: | Boost 1.49.0 | Severity: | Problem |
Keywords: | wave force_include forceinclude #line | Cc: |
Description
It can be demonstrated with the wave tool:
Input files
a.cpp:
int main(void) return 0;
force.h:
int func(void);
Command line:
wave -F force.h a.cpp
Output:
#line 1 "/Users/bonnedr/code/boost-wave-test/force.h" int func(void); int main(void) { return 0; }
Expected output:
#line 1 "/Users/bonnedr/code/boost-wave-test/force.h" int func(void); #line 1 "/Users/bonnedr/code/boost-wave-test/a.cpp" int main(void) { return 0; }
I have tried a fix by changing line 756 in wave/util/cpp_iterator.hpp like this. It solves the problem for me but I don't know Boost Wave enough to know if it doesn't introduce a bunch of other problems.
Fix:
-if (iter_ctx->emitted_lines+2 == act_pos.get_line()) { +if (iter_ctx->emitted_lines+2 == act_pos.get_line() && act_pos.get_line() != 1) {
Note:
See TracTickets
for help on using tickets.
(In [78554]) Wave: Fixed #6838: Adding include file with force_include makes Wave fail to emit #line directive Added support for test of --forceinclude option to testwave executable, added test case verifying #6838 is fixed.