This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[gold] PATCH: Add typename on types used in template


Hi Ian,

GCC 4.2 failed to compile gold:

/net/gnu-6/export/gnu/import/git/binutils/gold/x86_64.cc: In member
function
âvoid<unnamed>::Target_x86_64<size>::gc_process_relocs(gold::Symbol_table*,
gold::Layout*, gold::Sized_relobj_file<size, false>*, unsigned int,
unsigned int, const unsigned char*, size_t, gold::Output_section*, bool,
size_t, const unsigned char*) [with int size = 32]â:
/net/gnu-6/export/gnu/import/git/binutils/gold/x86_64.cc:4175:
instantiated from here
/net/gnu-6/export/gnu/import/git/binutils/gold/x86_64.cc:2811: error:
dependent-name â<unnamed>::Target_x86_64<size>::Scanâ is parsed as a
non-type, but instantiation yields a type
/net/gnu-6/export/gnu/import/git/binutils/gold/x86_64.cc:2811: note: say
âtypename <unnamed>::Target_x86_64<size>::Scanâ if a type is meant

This patch adds typename.  OK to install?

Thanks.

H.J.
---
diff --git a/gold/ChangeLog b/gold/ChangeLog
index 62f79f5..649668a 100644
--- a/gold/ChangeLog
+++ b/gold/ChangeLog
@@ -1,3 +1,11 @@
+2012-01-22  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* x86_64.cc (gc_process_relocs): Add typename on types used in
+	template.
+	(scan_relocs): Likewise.
+	(relocate_section): Likewise.
+	(apply_relocation): Likewise.
+
 2012-01-10  H.J. Lu  <hongjiu.lu@intel.com>
 
 	* x86_64.cc (Scan::check_non_pic): Allow R_X86_64_32 for x32.
diff --git a/gold/x86_64.cc b/gold/x86_64.cc
index 3a2cace..df11441 100644
--- a/gold/x86_64.cc
+++ b/gold/x86_64.cc
@@ -2809,8 +2809,8 @@ Target_x86_64<size>::gc_process_relocs(Symbol_table* symtab,
     }
 
    gold::gc_process_relocs<size, false, Target_x86_64<size>, elfcpp::SHT_RELA,
-                           Target_x86_64<size>::Scan,
-			   Target_x86_64<size>::Relocatable_size_for_reloc>(
+                           typename Target_x86_64<size>::Scan,
+			   typename Target_x86_64<size>::Relocatable_size_for_reloc>(
     symtab,
     layout,
     this,
@@ -2848,7 +2848,7 @@ Target_x86_64<size>::scan_relocs(Symbol_table* symtab,
     }
 
   gold::scan_relocs<size, false, Target_x86_64<size>, elfcpp::SHT_RELA,
-      Target_x86_64<size>::Scan>(
+      typename Target_x86_64<size>::Scan>(
     symtab,
     layout,
     this,
@@ -3780,7 +3780,7 @@ Target_x86_64<size>::relocate_section(
   gold_assert(sh_type == elfcpp::SHT_RELA);
 
   gold::relocate_section<size, false, Target_x86_64<size>, elfcpp::SHT_RELA,
-			 Target_x86_64<size>::Relocate>(
+			 typename Target_x86_64<size>::Relocate>(
     relinfo,
     this,
     prelocs,
@@ -3809,7 +3809,7 @@ Target_x86_64<size>::apply_relocation(
     section_size_type view_size)
 {
   gold::apply_relocation<size, false, Target_x86_64<size>,
-			 Target_x86_64<size>::Relocate>(
+			 typename Target_x86_64<size>::Relocate>(
     relinfo,
     this,
     r_offset,


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]