This is the mail archive of the gcc-patches@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]

C++ Patch for various typename issues.



This patch fixes several bugs relating to typename:

  template <class T, bool B> 
  struct R {
    struct X {};
  };
  
  template <class T, bool B = false>
  struct S : public R <T, B> {
  };
  
  template <class T> void f() 
  {
    S<T>::X();
  }

We didn't accept this, with the implicit typename extension.  In more
complex, but similar cases, we crashed.

  struct B {
    typedef int I;
  };
  
  template <class T>
  struct D1 : public B {
  };
  
  template <class T>
  struct D2 : public D1<T> {
    I i;
  };
  
  template <>
  struct D1<int> {
    typedef double I;
  };
  
  template <class T>
  void f(T);
  template <>
  void f(double) {}
  
  int main()
  {
    D2<int> d2i;
    f(d2i.i);
  }

We accepted this with the extension, but gave D2<int>::i type `int'
rather than `double'.

  template <class T>
  struct A
  {
    typedef T A_Type;
  };
  
  
  template <class U>
  struct B : public A<U>
  {
    typename B<U>::A_Type Func();
  };
  
  
  template <class U>
  typename B<U>::A_Type B<U>::Func()
  {
  }

We didn't accept this legal code with -pedantic.

  void f() 
  {
    union {
    private:
      int i;
    } u;
  
    u.i = 3; // ERROR - private
  }

We crashed.

-- 
Mark Mitchell 			mark@markmitchell.com
Mark Mitchell Consulting	http://www.markmitchell.com

1999-03-05  Mark Mitchell  <mark@markmitchell.com>

	* cp-tree.h (ANON_UNION_TYPE_P): Robustify.
	* decl.c (make_typename_type): Don't issue an error if an
	immediate lookup fails; it migt be resolved later.
	* friend.c (is_friend): Add comment.
	* search.c (breadth_first_search): Add POSTFN and DATA
	parameters.  Tidy.  All callers changed.
	(lookup_field_queue_p): New function.
	(lookup_field_r): Likewise.
	(lookup_field_post): Likewise.
	(lookup_field): Use them, via breadth_first_search, instead of
	duplicating logic.
	(compute_access): Robustify.
	(lookup_fnfield_info): New structure.
	
begin 660 diffs.gz
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
LZ51'W/0&1FP[N&NQ?,2RW'+^^<:,ML$,=[I.]D7,6W_?6/X%IQ-D9FJ4````
`
end


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