aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--lib.h1
-rw-r--r--pre-process.c8
2 files changed, 9 insertions, 0 deletions
diff --git a/lib.h b/lib.h
index 23623525..72651cef 100644
--- a/lib.h
+++ b/lib.h
@@ -135,6 +135,7 @@ enum phase {
extern void add_pre_buffer(const char *fmt, ...) FORMAT_ATTR(1);
extern void predefine(const char *name, int weak, const char *fmt, ...) FORMAT_ATTR(3);
+extern void predefine_nostd(const char *name);
extern int preprocess_only;
diff --git a/pre-process.c b/pre-process.c
index ca92ff06..7b245a04 100644
--- a/pre-process.c
+++ b/pre-process.c
@@ -1434,6 +1434,14 @@ void predefine(const char *name, int weak, const char *fmt, ...)
do_define(value->pos, NULL, ident, NULL, value, attr);
}
+///
+// like predefine() but only if one of the non-standard dialect is chosen
+void predefine_nostd(const char *name)
+{
+ if ((standard & STANDARD_GNU) || (standard == STANDARD_NONE))
+ predefine(name, 1, "1");
+}
+
static int do_handle_define(struct stream *stream, struct token **line, struct token *token, int attr)
{
struct token *arglist, *expansion;