summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordj <dj@138bc75d-0d04-0410-961f-82ee72b054a4>2011-10-22 01:35:29 +0000
committerdj <dj@138bc75d-0d04-0410-961f-82ee72b054a4>2011-10-22 01:35:29 +0000
commitb103fef54c6294a3bb51b8613e7a914c489e7098 (patch)
tree9a220a1521636f19743599c3ac312bb94cc39c8d
parentc81aeb2f029c23f1e3f5ec97be9de814c17c0292 (diff)
* obstack.h [!GNUC] (obstack_free): Avoid cast to int.
* ansidecl.h (ENUM_BITFIELD): Always use enum in C++ git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180321 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--include/ChangeLog8
-rw-r--r--include/ansidecl.h6
-rw-r--r--include/obstack.h6
3 files changed, 15 insertions, 5 deletions
diff --git a/include/ChangeLog b/include/ChangeLog
index 342ae36e1765..d5701f407722 100644
--- a/include/ChangeLog
+++ b/include/ChangeLog
@@ -1,3 +1,11 @@
+2011-10-21 Ulrich Drepper <drepper@gmail.com>
+
+ * obstack.h [!GNUC] (obstack_free): Avoid cast to int.
+
+2011-10-21 Marc Glisse <marc.glisse@inria.fr>
+
+ * ansidecl.h (ENUM_BITFIELD): Always use enum in C++
+
2011-09-28 Doug Evans <dje@google.com>
* timeval-utils.h: New file.
diff --git a/include/ansidecl.h b/include/ansidecl.h
index c39ce2f5d709..23d85bf0e161 100644
--- a/include/ansidecl.h
+++ b/include/ansidecl.h
@@ -416,10 +416,12 @@ So instead we use the macro below and test it against specific values. */
#define EXPORTED_CONST const
#endif
-/* Be conservative and only use enum bitfields with GCC.
+/* Be conservative and only use enum bitfields with C++ or GCC.
FIXME: provide a complete autoconf test for buggy enum bitfields. */
-#if (GCC_VERSION > 2000)
+#ifdef __cplusplus
+#define ENUM_BITFIELD(TYPE) enum TYPE
+#elif (GCC_VERSION > 2000)
#define ENUM_BITFIELD(TYPE) __extension__ enum TYPE
#else
#define ENUM_BITFIELD(TYPE) unsigned int
diff --git a/include/obstack.h b/include/obstack.h
index 4aec3a484e2c..23487ba4f4ae 100644
--- a/include/obstack.h
+++ b/include/obstack.h
@@ -532,9 +532,9 @@ __extension__ \
# define obstack_free(h,obj) \
( (h)->temp = (char *) (obj) - (char *) (h)->chunk, \
(((h)->temp > 0 && (h)->temp < (h)->chunk_limit - (char *) (h)->chunk)\
- ? (int) ((h)->next_free = (h)->object_base \
- = (h)->temp + (char *) (h)->chunk) \
- : (((obstack_free) ((h), (h)->temp + (char *) (h)->chunk), 0), 0)))
+ ? (((h)->next_free = (h)->object_base \
+ = (h)->temp + (char *) (h)->chunk), 0) \
+ : ((obstack_free) ((h), (h)->temp + (char *) (h)->chunk), 0)))
#endif /* not __GNUC__ or not __STDC__ */