aboutsummaryrefslogtreecommitdiff
path: root/gcc/system.h
diff options
context:
space:
mode:
authorTom Tromey <tromey@redhat.com>2009-05-27 19:53:03 +0000
committerTaras Glek <tglek@gcc.gnu.org>2009-05-27 19:53:03 +0000
commitcea32bca722edb23b8225c79be664232c3b756b5 (patch)
tree1df0cfc50045f71ab10be3320417d55473654481 /gcc/system.h
parentc607156f995fc3f5142e58456524e9d34c3f0c31 (diff)
downloadgcc-cea32bca722edb23b8225c79be664232c3b756b5.zip
gcc-cea32bca722edb23b8225c79be664232c3b756b5.tar.gz
gcc-cea32bca722edb23b8225c79be664232c3b756b5.tar.bz2
system.h (CONST_CAST2): Use C++ const_cast when compiled as C++
gcc/ChangeLog * system.h (CONST_CAST2): Use C++ const_cast when compiled as C++ From-SVN: r147928
Diffstat (limited to 'gcc/system.h')
-rw-r--r--gcc/system.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/gcc/system.h b/gcc/system.h
index 223a9dd..2a111ee 100644
--- a/gcc/system.h
+++ b/gcc/system.h
@@ -786,6 +786,9 @@ extern void fancy_abort (const char *, int, const char *) ATTRIBUTE_NORETURN;
change after the fact). Beyond these uses, most other cases of
using this macro should be viewed with extreme caution. */
+#ifdef __cplusplus
+#define CONST_CAST2(TOTYPE,FROMTYPE,X) (const_cast<TOTYPE> (X))
+#else
#if defined(__GNUC__) && GCC_VERSION > 4000
/* GCC 4.0.x has a bug where it may ICE on this expression,
so does GCC 3.4.x (PR17436). */
@@ -793,6 +796,7 @@ extern void fancy_abort (const char *, int, const char *) ATTRIBUTE_NORETURN;
#else
#define CONST_CAST2(TOTYPE,FROMTYPE,X) ((TOTYPE)(FROMTYPE)(X))
#endif
+#endif
#define CONST_CAST(TYPE,X) CONST_CAST2(TYPE, const TYPE, (X))
#define CONST_CAST_TREE(X) CONST_CAST(union tree_node *, (X))
#define CONST_CAST_RTX(X) CONST_CAST(struct rtx_def *, (X))