public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/16209] Internal Compiler Error (ICE) Inheriting from std::vector
  2004-06-25 20:38 [Bug c++/16209] New: Internal Compiler Error (ICE) Inheriting from std::vector kmahler at ausafs dot ihost dot com
@ 2004-06-25 20:38 ` bangerth at dealii dot org
  2004-06-30 15:34 ` kmahler at ausafs dot ihost dot com
  1 sibling, 0 replies; 3+ messages in thread
From: bangerth at dealii dot org @ 2004-06-25 20:38 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From bangerth at dealii dot org  2004-06-25 20:37 -------
Time to upgrade: at least since gcc3.2 (maybe already in 3.0, but I don't 
have that on my machine here), you get this error message: 
 
g/x> /home/bangerth/bin/gcc-3.2*/bin/c++ -c x.cc 
x.cc: In function `int main(int, char**)': 
x.cc:22: `template<class _Tp, class _Alloc> class std::vector' used without  
   template parameters 
 
W. 

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |RESOLVED
           Keywords|                            |ice-on-invalid-code
      Known to fail|                            |2.95
      Known to work|                            |3.2.3 3.3.3 3.4.0 3.5.0
         Resolution|                            |FIXED
   Target Milestone|---                         |3.1.x/3.2.x


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


^ permalink raw reply	[flat|nested] 3+ messages in thread

* [Bug c++/16209] New: Internal Compiler Error (ICE) Inheriting from std::vector
@ 2004-06-25 20:38 kmahler at ausafs dot ihost dot com
  2004-06-25 20:38 ` [Bug c++/16209] " bangerth at dealii dot org
  2004-06-30 15:34 ` kmahler at ausafs dot ihost dot com
  0 siblings, 2 replies; 3+ messages in thread
From: kmahler at ausafs dot ihost dot com @ 2004-06-25 20:38 UTC (permalink / raw)
  To: gcc-bugs

I get an ICE with the following code:

// main_7.cc

#include <vector>

class A {
public:
  A(int input_a) : this_a(input_a) {}
  int this_a;
};

class B : public std::vector<A*> {};

int main(int argc, char* argv[]) {

  A my_A_1(1);
  A my_A_2(2);

  B my_B;

  my_B.push_back(&my_A_1);

  my_B.push_back(&my_A_2);

  A* my_A_ptr = my_B.std::vector::at(1);

  // main_7.cc: In function `int main(int, char **)':
  // main_7.cc:41: no matching function for call to `B::at (int)'
  // A* my_A_ptr = my_B.at(1);

  return(0);
}

***** end of file *****

If I replace "std::vector" with my own simple version, no ICE results:

// main_10.cc

//#include <vector>

template <class TYPE>
class table {
public:
  table() { next_index = 0; }
  void push_back(TYPE my_type) { array[next_index] = my_type; next_index++; }
  int size(void) { return(next_index); }
  TYPE& at(int specified_index) { return( array[specified_index] ); }
  TYPE array[10];
  int next_index;
};

class A {
public:
  A(int input_a) : this_a(input_a) {}
  int this_a;
};

class B : public table<A*> {};

int main(int argc, char* argv[]) {

  A my_A_1(1);
  A my_A_2(2);

  B my_B;

  my_B.push_back(&my_A_1);

  my_B.push_back(&my_A_2);

  A* my_A_ptr = my_B.at(1);

  return(0);
}

***** end of file *****

Also, in the first file, "main_7.cc", why does "A* my_A_ptr = my_B.at(1);" get 
a compile error and "A* my_A_ptr = my_B.std::vector::at(1);" does not.  

Yet, in the second file, "main_10.cc", "A* my_A_ptr = my_B.at(1);" compiles.

OS: SunOS 5.8
KernalID=Generic_108528-23

-- 
           Summary: Internal Compiler Error (ICE) Inheriting from
                    std::vector
           Product: gcc
           Version: 2.95.3
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: kmahler at ausafs dot ihost dot com
                CC: gcc-bugs at gcc dot gnu dot org


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


^ permalink raw reply	[flat|nested] 3+ messages in thread

* [Bug c++/16209] Internal Compiler Error (ICE) Inheriting from std::vector
  2004-06-25 20:38 [Bug c++/16209] New: Internal Compiler Error (ICE) Inheriting from std::vector kmahler at ausafs dot ihost dot com
  2004-06-25 20:38 ` [Bug c++/16209] " bangerth at dealii dot org
@ 2004-06-30 15:34 ` kmahler at ausafs dot ihost dot com
  1 sibling, 0 replies; 3+ messages in thread
From: kmahler at ausafs dot ihost dot com @ 2004-06-30 15:34 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From kmahler at ausafs dot ihost dot com  2004-06-30 15:33 -------
Works on 3.3.2.  Thanks :)

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|RESOLVED                    |VERIFIED


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


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2004-06-30 15:33 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-06-25 20:38 [Bug c++/16209] New: Internal Compiler Error (ICE) Inheriting from std::vector kmahler at ausafs dot ihost dot com
2004-06-25 20:38 ` [Bug c++/16209] " bangerth at dealii dot org
2004-06-30 15:34 ` kmahler at ausafs dot ihost dot com

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).