This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC 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]

[Bug c++/32549] New: Wrong template instance resolution among multiple object files.


There seems to be something inconsistent in the g++ template
instantiation.

When a template is instantiated with an argument of the same
name in two object files in which the argument type is different
(unlike their names). It appears that even though that those
instances should have been distinct g++ resolves them into a
single one which appears to be wrong.

Please see the attached reproduction code. The code of the
template only prints the sizeof() of its (template) argument. 
The argument if places in a global namespace in each of the
object files is considered to be the same no matter of its
size or structure (as long as it is of the same name).

I have reproduced the gcc 3.4.6 and gcc 4.0.1 to behave the
same in this aspect (see the attached test output files).


-- 
           Summary: Wrong template instance resolution among multiple object
                    files.
           Product: gcc
           Version: 4.1.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: opichals at seznam dot cz
 GCC build triplet: x86
  GCC host triplet: x86
GCC target triplet: x86


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32549


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