This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
[gold] PATCH: Add typename on types used in template
- From: "H.J. Lu" <hongjiu dot lu at intel dot com>
- To: binutils at sourceware dot org
- Cc: Ian Lance Taylor <iant at google dot com>
- Date: Thu, 19 Jan 2012 14:40:58 -0800
- Subject: [gold] PATCH: Add typename on types used in template
- Reply-to: "H.J. Lu" <hjl dot tools at gmail dot com>
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,