projects
/
cparser
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
bitfield is a complete type
[cparser]
/
ast.c
diff --git
a/ast.c
b/ast.c
index
b203ee8
..
7284a5b
100644
(file)
--- a/
ast.c
+++ b/
ast.c
@@
-1116,6
+1116,17
@@
static void print_ms_try_statement(const ms_try_statement_t *statement)
print_statement(statement->final_statement);
}
print_statement(statement->final_statement);
}
+/**
+ * Print a microsoft __leave statement.
+ *
+ * @param statement the statement
+ */
+static void print_leave_statement(const leave_statement_t *statement)
+{
+ (void) statement;
+ fputs("__leave;\n", out);
+}
+
/**
* Print a statement.
*
/**
* Print a statement.
*
@@
-1175,6
+1186,9
@@
void print_statement(const statement_t *statement)
case STATEMENT_MS_TRY:
print_ms_try_statement(&statement->ms_try);
break;
case STATEMENT_MS_TRY:
print_ms_try_statement(&statement->ms_try);
break;
+ case STATEMENT_LEAVE:
+ print_leave_statement(&statement->leave);
+ break;
case STATEMENT_INVALID:
fprintf(out, "$invalid statement$");
break;
case STATEMENT_INVALID:
fprintf(out, "$invalid statement$");
break;
@@
-1259,7
+1273,7
@@
static void print_ms_modifiers(const declaration_t *declaration) {
if((c_mode & _MS) == 0)
return;
if((c_mode & _MS) == 0)
return;
- decl_modifiers_t modifiers = declaration->modifiers;
+ decl_modifiers_t modifiers = declaration->
decl_
modifiers;
/* DM_FORCEINLINE handled outside. */
if((modifiers & ~DM_FORCEINLINE) != 0 ||
/* DM_FORCEINLINE handled outside. */
if((modifiers & ~DM_FORCEINLINE) != 0 ||
@@
-1333,10
+1347,10
@@
static void print_normal_declaration(const declaration_t *declaration)
{
print_storage_class((storage_class_tag_t) declaration->declared_storage_class);
if(declaration->is_inline) {
{
print_storage_class((storage_class_tag_t) declaration->declared_storage_class);
if(declaration->is_inline) {
- if(declaration->modifiers & DM_FORCEINLINE)
+ if(declaration->
decl_
modifiers & DM_FORCEINLINE)
fputs("__forceinline ", out);
else {
fputs("__forceinline ", out);
else {
- if(declaration->modifiers & DM_MICROSOFT_INLINE)
+ if(declaration->
decl_
modifiers & DM_MICROSOFT_INLINE)
fputs("__inline ", out);
else
fputs("inline ", out);
fputs("__inline ", out);
else
fputs("inline ", out);