toplev.c (floor_log2, exact_log2): Don't define if __cplusplus.
authorGabriel Dos Reis <gdr@integrable-solutions.net>
Sun, 29 Jan 2006 15:37:20 +0000 (15:37 +0000)
committerGabriel Dos Reis <gdr@gcc.gnu.org>
Sun, 29 Jan 2006 15:37:20 +0000 (15:37 +0000)
        * 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

gcc/ChangeLog
gcc/toplev.c

index e4a6b4362434f73fb87a8444f5b6d363ad3a8f82..366779f2bf1f489bb5fc14ae617ce493274ca866 100644 (file)
@@ -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.
index b03e91dc99948bfd4278d113ebf372ad258f4292..62c9b4ff93703861c489439627825dd5e91e3718 100644 (file)
@@ -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;