[Bug c++/33821] New: function with ambiguous covariant return-type is not rejected

2007-10-19 Thread peter dot pirkelbauer at tamu dot edu
struct R1 {};
struct R2 : R1 {};
struct R3 : R1 {};
struct R4 : R2, R3 {};

struct A { virtual R1& foo(); };
struct B : virtual A { R2& foo(); };
struct C : virtual A { R3& foo(); };
struct D : B, C { R4& foo(); }; // should be rejected

R4 contains two subobjects of type R1. When D::foo is invoked in the context of
A (e.g.: in the following function bar) the cast from R4 to R1 is ambiguous.
Therefore D::foo should be rejected.

void bar(D& d)
{ A& a = d;
  R1& res = a.foo();
}


-- 
   Summary: function with ambiguous covariant return-type is not
rejected
   Product: gcc
   Version: 4.2.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
    ReportedBy: peter dot pirkelbauer at tamu dot edu
 GCC build triplet: i686-pc-linux-gnu
  GCC host triplet: i686-pc-linux-gnu
GCC target triplet: i686-pc-linux-gnu


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



[Bug c++/23055] New: overload resolution does not find templated function

2005-07-24 Thread peter dot pirkelbauer at tamu dot edu
I believe that the call to foo in line 35 should resolve to the function defined
in line 28/29.

# 1 "gnubug.cc"
# 1 ""
# 1 ""
# 1 "gnubug.cc"
# 1 "/local/lib/gcc/i686-pc-linux-gnu/4.0.0/include/stddef.h" 1 3 4
# 152 "/local/lib/gcc/i686-pc-linux-gnu/4.0.0/include/stddef.h" 3 4
typedef int ptrdiff_t;
# 214 "/local/lib/gcc/i686-pc-linux-gnu/4.0.0/include/stddef.h" 3 4
typedef unsigned int size_t;
# 2 "gnubug.cc" 2

class A {};

template  struct default_return_type
{ typedef void type;
};

template <>
struct default_return_type
{ typedef int type;
};

template  class RetType>
struct Base
{
  typedef typename RetType::type surrogate_t;

  template 
  void foo(T&, typename RetType::type * ret) {}  // line 29

  void foo1(A&, surrogate_t * ret) {}
};

struct Concrete : Base
{ void bar(A& a) { foo(a, __null); }  // line 35
  void bar0(A& a) { int * x = __null; foo(a, x); }
  void bar1(A& a) { foo1(a, __null); }
};

-- 
   Summary: overload resolution does not find templated function
   Product: gcc
   Version: 4.0.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P2
 Component: c++
    AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: peter dot pirkelbauer at tamu dot edu
CC: gcc-bugs at gcc dot gnu dot org
 GCC build triplet: i686-pc-linux-gnu
  GCC host triplet: i686-pc-linux-gnu
GCC target triplet: i686-pc-linux-gnu


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


[Bug other/21350] configure reports only a warning when bison is not installed

2005-05-02 Thread peter dot pirkelbauer at tamu dot edu

--- Additional Comments From peter dot pirkelbauer at tamu dot edu  
2005-05-03 02:33 ---
automake 1.9
autoconf 2.59a

-- 
   What|Removed |Added

   GCC host triplet||linux 2.6.10


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


[Bug other/21350] New: configure reports only a warning when bison is not installed

2005-05-02 Thread peter dot pirkelbauer at tamu dot edu
when bison is not installed, configure reports only a warning, instead of an 
error.

Consequently, the following make-command fails.

-- 
   Summary: configure reports only a warning when bison is not
installed
   Product: gcc
   Version: 4.0.0
Status: UNCONFIRMED
  Severity: minor
  Priority: P2
 Component: other
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: peter dot pirkelbauer at tamu dot edu
CC: gcc-bugs at gcc dot gnu dot org,gdr at cs dot tamu dot
edu


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