diff options
Diffstat (limited to 'gcc/cp/parser.c')
-rw-r--r-- | gcc/cp/parser.c | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/gcc/cp/parser.c b/gcc/cp/parser.c index ac953d0..ceae72a 100644 --- a/gcc/cp/parser.c +++ b/gcc/cp/parser.c @@ -19592,6 +19592,7 @@ cp_parser_using_directive (cp_parser* parser) asm-qualifier: volatile + inline goto asm-qualifier-list: @@ -19632,6 +19633,7 @@ cp_parser_asm_definition (cp_parser* parser) bool extended_p = false; bool invalid_inputs_p = false; bool invalid_outputs_p = false; + bool inline_p = false; bool goto_p = false; required_token missing = RT_NONE; @@ -19661,6 +19663,17 @@ cp_parser_asm_definition (cp_parser* parser) else done = true; break; + case RID_INLINE: + if (!inline_p && parser->in_function_body) + { + /* Remember that we saw the `inline' keyword. */ + inline_p = true; + /* Consume the token. */ + cp_lexer_consume_token (parser->lexer); + } + else + done = true; + break; case RID_GOTO: if (!goto_p && parser->in_function_body) { @@ -19802,7 +19815,7 @@ cp_parser_asm_definition (cp_parser* parser) if (parser->in_function_body) { asm_stmt = finish_asm_stmt (volatile_p, string, outputs, - inputs, clobbers, labels); + inputs, clobbers, labels, inline_p); /* If the extended syntax was not used, mark the ASM_EXPR. */ if (!extended_p) { |