aboutsummaryrefslogtreecommitdiff
path: root/gcc/c-common.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/c-common.c')
-rw-r--r--gcc/c-common.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/gcc/c-common.c b/gcc/c-common.c
index 8a554e8..e1633cb 100644
--- a/gcc/c-common.c
+++ b/gcc/c-common.c
@@ -4440,10 +4440,13 @@ builtin_define_std (macro)
/* prepend __ (or maybe just _) if in user's namespace. */
memcpy (p, macro, len + 1);
- if (*p != '_')
- *--p = '_';
- if (p[1] != '_' && !ISUPPER (p[1]))
- *--p = '_';
+ if (!( *p == '_' && (p[1] == '_' || ISUPPER (p[1]))))
+ {
+ if (*p != '_')
+ *--p = '_';
+ if (p[1] != '_')
+ *--p = '_';
+ }
cpp_define (parse_in, p);
/* If it was in user's namespace... */