aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp/parser.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/cp/parser.c')
-rw-r--r--gcc/cp/parser.c15
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)
{