aboutsummaryrefslogtreecommitdiff
path: root/libcpp/traditional.c
diff options
context:
space:
mode:
Diffstat (limited to 'libcpp/traditional.c')
-rw-r--r--libcpp/traditional.c10
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;
}