diff options
Diffstat (limited to 'libcpp/traditional.c')
-rw-r--r-- | libcpp/traditional.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/libcpp/traditional.c b/libcpp/traditional.c index 039fcfe..b087072 100644 --- a/libcpp/traditional.c +++ b/libcpp/traditional.c @@ -312,7 +312,11 @@ _cpp_read_logical_line_trad (cpp_reader *pfile) do { if (pfile->buffer->need_line && !_cpp_get_fresh_line (pfile)) - return false; + { + /* Now pop the buffer that _cpp_get_fresh_line did not. */ + _cpp_pop_buffer (pfile); + return false; + } } while (!_cpp_scan_out_logical_line (pfile, NULL, false) || pfile->state.skipping); @@ -326,7 +330,9 @@ fun_like_macro (cpp_hashnode *node) { if (cpp_builtin_macro_p (node)) return (node->value.builtin == BT_HAS_ATTRIBUTE - || node->value.builtin == BT_HAS_BUILTIN); + || node->value.builtin == BT_HAS_BUILTIN + || node->value.builtin == BT_HAS_INCLUDE + || node->value.builtin == BT_HAS_INCLUDE_NEXT); return node->value.macro->fun_like; } |