Bugzilla will be upgraded to version 5.0 on a still to be determined date in the near future. The original upgrade date has been delayed.
Bug 207044 - error: specialization after instantiation
error: specialization after instantiation
Product: Fedora
Classification: Fedora
Component: gcc (Show other bugs)
All Linux
medium Severity medium
: ---
: ---
Assigned To: Jakub Jelinek
Depends On:
  Show dependency treegraph
Reported: 2006-09-18 18:39 EDT by Orion Poplawski
Modified: 2007-11-30 17:11 EST (History)
0 users

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Last Closed: 2006-09-19 02:29:47 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Attachments (Terms of Use)
Pre-processed source file (1.83 MB, application/octet-stream)
2006-09-18 18:39 EDT, Orion Poplawski
no flags Details

  None (edit)
Description Orion Poplawski 2006-09-18 18:39:03 EDT
Description of problem:

I get the following error when trying to compile gdl-0.9pre2 for FE6:

datatypes.cpp: At global scope:
datatypes.cpp:534: error: specialization of 'Data_< <template-parameter-1-1>
>::Data_(const dimension&, BaseGDL::InitType) [with Sp = SpDPtr]' after
datatypes.cpp:534: error: invalid function declaration
datatypes.cpp:543: error: specialization of 'Data_< <template-parameter-1-1>
>::Data_(const dimension&, BaseGDL::InitType) [with Sp = SpDObj]' after
datatypes.cpp:543: error: invalid function declaration

I did not get this error when I compiled for FE development on Jul 3 2006 (so

Now, I don't know if this is a gcc regression or bad C++ code in gdl that is
finally getting flagged properly.

Version-Release number of selected component (if applicable):

Code snippet:

template<> Data_<SpDString>::Data_(const dimension& dim_,
                                   BaseGDL::InitType iT):
  SpDString(dim_), dd(dim.N_Elements())

  if( iT == BaseGDL::INDGEN)
    throw GDLException("DStringGDL(dim,InitType=INDGEN) called.");
template<> Data_<SpDPtr>::Data_(const dimension& dim_,
                                BaseGDL::InitType iT):
  SpDPtr(dim_), dd(dim.N_Elements())

  if( iT == BaseGDL::INDGEN)
    throw GDLException("DPtrGDL(dim,InitType=INDGEN) called.");
template<> Data_<SpDObj>::Data_(const dimension& dim_,
                                BaseGDL::InitType iT):
  SpDObj(dim_), dd(dim.N_Elements())

  if( iT == BaseGDL::INDGEN)
    throw GDLException("DObjGDL(dim,InitType=INDGEN) called.");

The errors are flagged only for the second two specializations.
Comment 1 Orion Poplawski 2006-09-18 18:39:04 EDT
Created attachment 136590 [details]
Pre-processed source file
Comment 2 Jakub Jelinek 2006-09-19 02:29:47 EDT
gdl is buggy, see http://gcc.gnu.org/PR28058 for details.

Note You need to log in before you can comment on or make changes to this bug.