aboutsummaryrefslogtreecommitdiff
path: root/libcpp
diff options
context:
space:
mode:
authorJason Merrill <jason@redhat.com>2018-05-17 19:28:34 -0400
committerJason Merrill <jason@gcc.gnu.org>2018-05-17 19:28:34 -0400
commitb2ff74575d7269d6f3a9a83b86e68d229cbc539f (patch)
tree67941a07b2fd39de7e20d799fcd8527e03749c2d /libcpp
parent7bbce9b50302959286381d9177818642bceaf301 (diff)
downloadgcc-b2ff74575d7269d6f3a9a83b86e68d229cbc539f.zip
gcc-b2ff74575d7269d6f3a9a83b86e68d229cbc539f.tar.gz
gcc-b2ff74575d7269d6f3a9a83b86e68d229cbc539f.tar.bz2
line-map.c (linemap_init): Use placement new.
* line-map.c (linemap_init): Use placement new. * system.h: #include <new>. From-SVN: r260343
Diffstat (limited to 'libcpp')
-rw-r--r--libcpp/ChangeLog5
-rw-r--r--libcpp/line-map.c2
-rw-r--r--libcpp/system.h4
3 files changed, 10 insertions, 1 deletions
diff --git a/libcpp/ChangeLog b/libcpp/ChangeLog
index a66948f..88cbe1b 100644
--- a/libcpp/ChangeLog
+++ b/libcpp/ChangeLog
@@ -1,3 +1,8 @@
+2018-05-17 Jason Merrill <jason@redhat.com>
+
+ * line-map.c (linemap_init): Use placement new.
+ * system.h: #include <new>.
+
2018-03-14 David Malcolm <dmalcolm@redhat.com>
* include/line-map.h (compare): New function on linenum_type.
diff --git a/libcpp/line-map.c b/libcpp/line-map.c
index a84084c..b2ebfeb 100644
--- a/libcpp/line-map.c
+++ b/libcpp/line-map.c
@@ -348,7 +348,7 @@ linemap_init (struct line_maps *set,
/* PR33916, needed to fix PR82939. */
memset (set, 0, sizeof (struct line_maps));
#else
- *set = line_maps ();
+ new (set) line_maps();
#endif
set->highest_location = RESERVED_LOCATION_COUNT - 1;
set->highest_line = RESERVED_LOCATION_COUNT - 1;
diff --git a/libcpp/system.h b/libcpp/system.h
index 719435d..76420e1 100644
--- a/libcpp/system.h
+++ b/libcpp/system.h
@@ -438,6 +438,10 @@ extern void fancy_abort (const char *, int, const char *) ATTRIBUTE_NORETURN;
/* Some compilers do not allow the use of unsigned char in bitfields. */
#define BOOL_BITFIELD unsigned int
+#ifdef __cplusplus
+#include <new>
+#endif
+
/* Poison identifiers we do not want to use. */
#if (GCC_VERSION >= 3000)
#undef calloc