#include "symbol_t.h"
#include "type_t.h"
#include "parser.h"
+#include "lang_features.h"
#include <assert.h>
#include <stdio.h>
* Print microsoft extended declaration modifiers.
*/
static void print_ms_modifiers(const declaration_t *declaration) {
+ if((c_mode & _MS) == 0)
+ return;
+
decl_modifiers_t modifiers = declaration->modifiers;
/* DM_FORCEINLINE handled outside. */
- if((modifiers & ~DM_FORCEINLINE) != 0 || declaration->alignment != 0 ||
+ if((modifiers & ~DM_FORCEINLINE) != 0 ||
+ declaration->alignment != 0 || declaration->deprecated != 0 ||
declaration->get_property_sym != NULL || declaration->put_property_sym != NULL) {
char *next = "(";
if(modifiers & DM_NOINLINE) {
fputs(next, out); next = ", "; fputs("noinline", out);
}
- if(modifiers & DM_DEPRECATED) {
+ if(declaration->deprecated != 0) {
fputs(next, out); next = ", "; fputs("deprecated", out);
if(declaration->deprecated_string != NULL)
fprintf(out, "(\"%s\")", declaration->deprecated_string);
case EXPR_SIZEOF:
case EXPR_CLASSIFY_TYPE:
case EXPR_FUNCTION:
+ case EXPR_FUNCSIG:
+ case EXPR_FUNCDNAME:
case EXPR_PRETTY_FUNCTION:
case EXPR_OFFSETOF:
case EXPR_ALIGNOF: