aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGabriel Dos Reis <gdr@integrable-solutions.net>2006-01-29 15:37:20 +0000
committerGabriel Dos Reis <gdr@gcc.gnu.org>2006-01-29 15:37:20 +0000
commita8a4fe0c599b1565b9fda3924d376239b91f69df (patch)
tree2c06dbf9a00955bfff48b2107bb0728a1f445bf1
parent2cc9c3a0d08a2726b3d6ad7eb738f0e64048726e (diff)
downloadgcc-a8a4fe0c599b1565b9fda3924d376239b91f69df.zip
gcc-a8a4fe0c599b1565b9fda3924d376239b91f69df.tar.gz
gcc-a8a4fe0c599b1565b9fda3924d376239b91f69df.tar.bz2
toplev.c (floor_log2, exact_log2): Don't define if __cplusplus.
* toplev.c (floor_log2, exact_log2): Don't define if __cplusplus. (push_srcloc): Use XNEW. (init_asm_output, default_get_pch_validity): Use XNEWVEC. Co-Authored-By: Marcin Dalecki <martin@dalecki.de> From-SVN: r110372
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/toplev.c14
2 files changed, 18 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index e4a6b43..366779f 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2006-01-29 Gabriel Dos Reis <gdr@integrable-solutions.net>
+ Marcin Dalecki <martin@dalecki.de>
+
+ * toplev.c (floor_log2, exact_log2): Don't define if __cplusplus.
+ (push_srcloc): Use XNEW.
+ (init_asm_output, default_get_pch_validity): Use XNEWVEC.
+
2006-01-29 Kenneth Zadeck <zadeck@naturalbridge.com>
* df-core.c (df_set_blocks): Deleted all variable.
diff --git a/gcc/toplev.c b/gcc/toplev.c
index b03e91d..62c9b4f 100644
--- a/gcc/toplev.c
+++ b/gcc/toplev.c
@@ -516,6 +516,12 @@ read_integral_parameter (const char *p, const char *pname, const int defval)
return atoi (p);
}
+/* When compiling with a recent enough GCC, we use the GNU C "extern inline"
+ for floor_log2 and exact_log2; see toplev.h. That construct, however,
+ conflicts with the ISO C++ One Definition Rule. */
+
+#if !defined (__cplusplus)
+
/* Given X, an unsigned number, return the largest int Y such that 2**Y <= X.
If X is 0, return -1. */
@@ -566,6 +572,8 @@ exact_log2 (unsigned HOST_WIDE_INT x)
#endif
}
+#endif /* !defined (__cplusplus) */
+
/* Handler for fatal signals, such as SIGSEGV. These are transformed
into ICE messages, which is much more user friendly. In case the
error printer crashes, reset the signal to prevent infinite recursion. */
@@ -942,7 +950,7 @@ push_srcloc (const char *file, int line)
{
struct file_stack *fs;
- fs = xmalloc (sizeof (struct file_stack));
+ fs = XNEW (struct file_stack);
fs->location = input_location;
fs->next = input_file_stack;
#ifdef USE_MAPPED_LOCATION
@@ -1233,7 +1241,7 @@ init_asm_output (const char *name)
if (asm_file_name == 0)
{
int len = strlen (dump_base_name);
- char *dumpname = xmalloc (len + 6);
+ char *dumpname = XNEWVEC (char, len + 6);
memcpy (dumpname, dump_base_name, len + 1);
strip_off_ending (dumpname, len);
strcat (dumpname, ".s");
@@ -1299,7 +1307,7 @@ default_get_pch_validity (size_t *len)
if (option_affects_pch_p (i, &state))
*len += state.size;
- result = r = xmalloc (*len);
+ result = r = XNEWVEC (char, *len);
r[0] = flag_pic;
r[1] = flag_pie;
r += 2;