mirror of
https://github.com/boostorg/wave.git
synced 2026-01-19 16:52:15 +00:00
boost-1.80.0
* Fix line directives after endif when else clause is present The initial part of a conditional block (the if/ifdef/ifndef) takes the "slow" path through the code in cpp_iterator.hpp using the C++ expression grammar, while else and endif directives take the "fast" path. The slow path sets must_emit_line_directive, and it will be cleared after either else or endif is processed. Unfortunately when an else precedes the endif, must_emit_line_directive is cleared and is never set, as only the slow path sets it. The result is proper line directives are issued for the else clause, but not for the subsequent endif. This changes adds setting of must_emit_line_directive in the "fast" path for endif so line directives are considered after an intervening else.
Boost.Wave
| Branch | Appveyor (MSVC) | GitHub Actions (gcc, clang) |
|---|---|---|
| Master | ||
| Develop |
The Wave C++ preprocessor library is a Standards conformant implementation of the mandated C99/C++ preprocessor functionality packed behind a simple to use interface, which integrates well with the well known idioms of the Standard Template Library (STL).
Description
Languages
C++
99.7%
HTML
0.2%