restore bootstrap with a C++ compiler

Gabriel Dos Reis gdr@cs.tamu.edu
Thu Apr 28 01:46:00 GMT 2011


Richard,

Your recent patch broke --enable-build-with-cxx because internal-fn.h
was using good 'ol C-style name lookup trick that behaves badly with
C++ linkage rules.  Fixed thusly.  Applied as obvious.

-- Gaby

2011-04-27  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* internal-fn.h (internal_fn_name_array): Declare.
	(internal_fn_flags_array): Likewise.

*** internal-fn.h	(revision 173070)
--- internal-fn.h	(local)
*************** enum internal_fn {
*** 30,48 ****
  /* Return the name of internal function FN.  The name is only meaningful
     for dumps; it has no linkage.  */
  
  static inline const char *
  internal_fn_name (enum internal_fn fn)
  {
-   extern const char *const internal_fn_name_array[];
    return internal_fn_name_array[(int) fn];
  }
  
  /* Return the ECF_* flags for function FN.  */
  
  static inline int
  internal_fn_flags (enum internal_fn fn)
  {
-   extern const int internal_fn_flags_array[];
    return internal_fn_flags_array[(int) fn];
  }
  
--- 30,50 ----
  /* Return the name of internal function FN.  The name is only meaningful
     for dumps; it has no linkage.  */
  
+ extern const char *const internal_fn_name_array[];
+ 
  static inline const char *
  internal_fn_name (enum internal_fn fn)
  {
    return internal_fn_name_array[(int) fn];
  }
  
  /* Return the ECF_* flags for function FN.  */
  
+ extern const int internal_fn_flags_array[];
+ 
  static inline int
  internal_fn_flags (enum internal_fn fn)
  {
    return internal_fn_flags_array[(int) fn];
  }
  



More information about the Gcc-patches mailing list