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]
Other format: [Raw text]

Re: [PATCH, c++ diagnostics] Fix c++ front end i18n problems


On 12/10/2009 03:15 PM, Paolo Bonzini wrote:

There's a memory leak here, you need


  if (!spaces)
    *str = spaces = get_spaces (*str);

Also, when you free "spaces" do "*str = NULL" to catch the bug if the freeing condition is wrong (as of now you're leaving a dangling pointer in *str).

I think what you mean is to do "*str = NULL" when "spaces" is freed, otherwise *str would be a dangling pointer.
It is changed as following:
if (spaces
&& fns == NULL_TREE
&& !TREE_VALUE (fns))
{
free (spaces);
*str = NULL;
}


Finally, declare spaces without const and make "get_spaces" return a non-const char* to avoid introducing a pointless CONST_CAST: there is no reason why the caller of get_spaces cannot modify the string, and in fact it has to do so when it frees it.

Ok, thanks.
Tested again and attached the test cases patch.
Is it OK?

Thanks
Pearly


Index: call.c
===================================================================
--- call.c	(revision 155123)
+++ call.c	(working copy)
@@ -2730,6 +2730,7 @@ print_z_candidates (struct z_candidate *
   const char *str;
   struct z_candidate *cand1;
   struct z_candidate **cand2;
+  char *spaces;
 
   if (!candidates)
     return;
@@ -2770,17 +2771,11 @@ print_z_candidates (struct z_candidate *
 	}
     }
 
-  str = _("candidates are:");
-  print_z_candidate (str, candidates);
   if (candidates->next)
     {
-      /* Indent successive candidates by the width of the translation
-	 of the above string.  */
-      size_t len = gcc_gettext_width (str) + 1;
-      char *spaces = (char *) alloca (len);
-      memset (spaces, ' ', len-1);
-      spaces[len - 1] = '\0';
-
+      str = _("candidates are:");
+      print_z_candidate (str, candidates);
+      spaces = get_spaces(str);
       candidates = candidates->next;
       do
 	{
@@ -2788,6 +2783,13 @@ print_z_candidates (struct z_candidate *
 	  candidates = candidates->next;
 	}
       while (candidates);
+      if (spaces)
+        free (spaces);
+    }
+  else
+    {
+       str = _("candidate is:");
+       print_z_candidate (str, candidates);
     }
 }
 
Index: cp-tree.h
===================================================================
--- cp-tree.h	(revision 155123)
+++ cp-tree.h	(working copy)
@@ -4904,6 +4904,7 @@ extern tree get_pattern_parm			(tree, tr
 extern int comp_template_args			(tree, tree);
 extern tree maybe_process_partial_specialization (tree);
 extern tree most_specialized_instantiation	(tree);
+extern char *get_spaces				(const char *);
 extern void print_candidates			(tree);
 extern void instantiate_pending_templates	(int);
 extern tree tsubst_default_argument		(tree, tree, tree);
Index: Make-lang.in
===================================================================
--- Make-lang.in	(revision 155123)
+++ Make-lang.in	(working copy)
@@ -292,7 +292,7 @@ cp/expr.o: cp/expr.c $(CXX_TREE_H) $(TM_
   toplev.h except.h $(TM_P_H)
 cp/pt.o: cp/pt.c $(CXX_TREE_H) $(TM_H) cp/decl.h cp/cp-objcp-common.h \
   toplev.h $(RTL_H) except.h $(TREE_INLINE_H) pointer-set.h gt-cp-pt.h \
-  vecprim.h
+  vecprim.h intl.h
 cp/error.o: cp/error.c $(CXX_TREE_H) $(TM_H) toplev.h $(DIAGNOSTIC_H) \
   $(FLAGS_H) $(REAL_H) $(LANGHOOKS_DEF_H) $(CXX_PRETTY_PRINT_H)
 cp/repo.o: cp/repo.c $(CXX_TREE_H) $(TM_H) toplev.h $(DIAGNOSTIC_H) \
Index: pt.c
===================================================================
--- pt.c	(revision 155123)
+++ pt.c	(working copy)
@@ -32,6 +32,7 @@ along with GCC; see the file COPYING3.  
 #include "tm.h"
 #include "obstack.h"
 #include "tree.h"
+#include "intl.h"
 #include "pointer-set.h"
 #include "flags.h"
 #include "c-common.h"
@@ -112,6 +113,7 @@ static GTY(()) VEC(tree,gc) *canonical_t
 
 static void push_access_scope (tree);
 static void pop_access_scope (tree);
+static void print_chained_functions (tree, const char *);
 static bool resolve_overloaded_unification (tree, tree, tree, tree,
 					    unification_kind_t, int);
 static int try_one_overload (tree, tree, tree, tree, tree,
@@ -1646,20 +1648,51 @@ explicit_class_specialization_p (tree ty
   return !uses_template_parms (CLASSTYPE_TI_ARGS (type));
 }
 
+/* Indent successive candidates by the width of the translation
+   of STR.  */
+char *
+get_spaces (const char *str)
+{
+   size_t len = gcc_gettext_width (str) + 1;
+   char *spaces = XNEWVEC(char, len);
+   memset (spaces, ' ', len-1);
+   spaces[len - 1] = '\0';
+   return spaces;
+}
+
 /* Print the list of overloaded FNS in an error message.   */
 
 static void
 print_overloaded_functions (tree fns, const char **str)
 {
   tree fn;
+  char *spaces = NULL;
   for (fn = fns; fn; fn = OVL_NEXT (fn))
     {
       if (TREE_CODE (fn) == TREE_LIST)
-	print_candidates (fn);
+	print_chained_functions (fn, *str);
       else
 	error ("%s %+#D", *str, OVL_CURRENT (fn));
-      *str = "               ";
+      if (!spaces)
+        *str = spaces = get_spaces (*str); 
     }
+  /* Only if all the candidates are covered, 
+     the spaces can be freed.  */
+  if (spaces 
+      && fns == NULL_TREE
+      && !TREE_VALUE (fns))
+    {
+       *str = NULL;
+       free (spaces);
+    }
+}
+
+static void
+print_chained_functions (tree fns, const char *str)
+{
+  tree fn;
+  for (fn = fns; fn != NULL_TREE; fn = TREE_CHAIN (fn))
+    print_overloaded_functions (TREE_VALUE (fn), &str);
 }
 
 /* Print the list of candidate FNS in an error message.  */
@@ -1667,15 +1700,18 @@ print_overloaded_functions (tree fns, co
 void
 print_candidates (tree fns)
 {
-  const char *str = "candidates are:";
-
+  const char *str = _("candidates are:");
   if (is_overloaded_fn (fns))
-    print_overloaded_functions (fns, &str);
-  else
     {
-      tree fn;
-      for (fn = fns; fn != NULL_TREE; fn = TREE_CHAIN (fn))
-	print_overloaded_functions (TREE_VALUE (fn), &str);
+       if (!OVL_NEXT(fns))
+         str = _("candidate is:");
+       print_overloaded_functions (fns, &str);
+    }
+  else
+    { 
+       if (!TREE_CHAIN (fns) && !OVL_NEXT(TREE_VALUE (fns)))
+         str = _("candidate is:");
+       print_chained_functions (fns, str);
     }
 }
 
@@ -15656,6 +15692,7 @@ most_specialized_class (tree type, tree 
   bool ambiguous_p;
   tree args;
   tree outer_args = NULL_TREE;
+  char *spaces;
 
   tmpl = most_general_template (tmpl);
   args = CLASSTYPE_TI_ARGS (type);
@@ -15751,13 +15788,28 @@ most_specialized_class (tree type, tree 
 
   if (ambiguous_p)
     {
-      const char *str = "candidates are:";
+      const char *str;
       error ("ambiguous class template instantiation for %q#T", type);
-      for (t = list; t; t = TREE_CHAIN (t))
-	{
-	  error ("%s %+#T", str, TREE_TYPE (t));
-	  str = "               ";
-	}
+      if (TREE_CHAIN (list))
+        {
+           str = _("candidates are:");
+           error ("%s %+#T", str, TREE_TYPE (list));
+           t = TREE_CHAIN (list);
+           spaces = get_spaces (str);
+           do
+             {
+                error ("%s %+#T", spaces, TREE_TYPE (t));
+                t = TREE_CHAIN (t);
+             }
+           while (t);
+           if (spaces)
+             free (spaces);
+         }
+      else
+        {
+            str = _("candidate is:");
+            error ("%s %+#T", str, TREE_TYPE (list));
+        }
       return error_mark_node;
     }
 
Index: g++.dg/other/error20.C
===================================================================
--- g++.dg/other/error20.C	(revision 155123)
+++ g++.dg/other/error20.C	(working copy)
@@ -2,7 +2,7 @@
 // { dg-do compile }
 
 struct A
-{		// { dg-message "candidates" }
+{		// { dg-message "candidate is" }
   virtual A foo ();
 };
 
Index: g++.dg/other/error31.C
===================================================================
--- g++.dg/other/error31.C	(revision 155123)
+++ g++.dg/other/error31.C	(working copy)
@@ -3,7 +3,7 @@
 // { dg-options "" }
 // { dg-bogus "not supported by" "" { target *-*-* } 0 }
 
-struct A {};		// { dg-message "note: candidates are" }
+struct A {};		// { dg-message "note: candidate is" }
 
 void
 foo ()
Index: g++.dg/rtti/typeid6.C
===================================================================
--- g++.dg/rtti/typeid6.C	(revision 155123)
+++ g++.dg/rtti/typeid6.C	(working copy)
@@ -7,5 +7,5 @@ namespace std
 
 template<int> void foo()
 {
-  !typeid(void); // { dg-error "!typeid\\(void\\)|candidates" }
+  !typeid(void); // { dg-error "!typeid\\(void\\)|candidate is" }
 }
Index: g++.dg/ext/ms-1.C
===================================================================
--- g++.dg/ext/ms-1.C	(revision 155123)
+++ g++.dg/ext/ms-1.C	(working copy)
@@ -10,7 +10,7 @@ struct X
 
 void Quux (void (X::*) ());
 
-void X::Foo (X *ptr)  // { dg-message "candidates" }
+void X::Foo (X *ptr)  // { dg-message "candidate" }
 {
   Quux (Foo); // { dg-error "no matches" }
   Quux (Bar);
Index: g++.dg/parse/error19.C
===================================================================
--- g++.dg/parse/error19.C	(revision 155123)
+++ g++.dg/parse/error19.C	(working copy)
@@ -2,7 +2,7 @@
 // PR C++/17867
 
 struct A
-{  // { dg-message "1:candidates are:" }
+{  // { dg-message "1:candidate is:" }
   A(int);
 };
 
Index: g++.dg/parse/crash5.C
===================================================================
--- g++.dg/parse/crash5.C	(revision 155123)
+++ g++.dg/parse/crash5.C	(working copy)
@@ -1,7 +1,7 @@
 // { dg-options "-w" }
 
 class QString { // { dg-error "previous definition" }
-  QString (const QString & a); // { dg-message "candidates" }
+  QString (const QString & a); // { dg-message "candidate is" }
 };
 
 class QString { }; // { dg-error "redefinition" }
Index: g++.dg/cpp0x/explicit4.C
===================================================================
--- g++.dg/cpp0x/explicit4.C	(revision 155123)
+++ g++.dg/cpp0x/explicit4.C	(working copy)
@@ -2,7 +2,7 @@
 // { dg-options "-std=c++0x" }
 
 struct A {
-  A(const A&, int = 0);		// { dg-message "candidates" }
+  A(const A&, int = 0);		// { dg-message "candidate" }
 };
 struct B
 {
Index: g++.dg/template/ptrmem4.C
===================================================================
--- g++.dg/template/ptrmem4.C	(revision 155123)
+++ g++.dg/template/ptrmem4.C	(working copy)
@@ -6,7 +6,7 @@
 // Pointer to member function template argument deduction ICE.
 
 
-template <class CONT> void queryAliases(CONT& fill_me); // { dg-message "candidates" }
+template <class CONT> void queryAliases(CONT& fill_me); // { dg-message "candidate is" }
 
 struct SpyExample
 {
Index: g++.dg/template/crash37.C
===================================================================
--- g++.dg/template/crash37.C	(revision 155123)
+++ g++.dg/template/crash37.C	(working copy)
@@ -11,7 +11,7 @@ struct coperator_stack
 struct helper {};
 
 template<class F>
-void bla(F f) // { dg-message "candidates" }
+void bla(F f) // { dg-message "candidate is" }
 {
 }
 
Index: g++.dg/template/qualttp5.C
===================================================================
--- g++.dg/template/qualttp5.C	(revision 155123)
+++ g++.dg/template/qualttp5.C	(working copy)
@@ -4,7 +4,7 @@
 
 template <class U> struct A
 {
-	template <class T> class B {}; // { dg-message "candidates" }
+	template <class T> class B {}; // { dg-message "candidate is" }
 };
 
 template <template <class> class TT> void f()
Index: g++.dg/template/local6.C
===================================================================
--- g++.dg/template/local6.C	(revision 155123)
+++ g++.dg/template/local6.C	(working copy)
@@ -1,5 +1,5 @@
 template <class T> struct PCVector2
-{ // { dg-message "candidates" }
+{ // { dg-message "candidate is" }
     template <class T2> PCVector2(const PCVector2<T> &cv) ;
 
     PCVector2<T> operator- (const PCVector2<T> &ov) const 
Index: g++.dg/template/instantiate5.C
===================================================================
--- g++.dg/template/instantiate5.C	(revision 155123)
+++ g++.dg/template/instantiate5.C	(working copy)
@@ -13,7 +13,7 @@ int baz() { return A<0>::i; }
 
 struct B
 {
-  static void foo (int);	// { dg-message "candidates" }
+  static void foo (int);	// { dg-message "candidate is" }
 };
 
 template <typename T> struct C
Index: g++.old-deja/g++.brendan/overload1.C
===================================================================
--- g++.old-deja/g++.brendan/overload1.C	(revision 155123)
+++ g++.old-deja/g++.brendan/overload1.C	(working copy)
@@ -9,7 +9,7 @@ public:
 class Bar : public Foo
 {
 public:
-      int f (int); // { dg-message "candidates" }
+      int f (int); // { dg-message "candidate is" }
 };
 
 int main ()
Index: g++.old-deja/g++.brendan/cvt3.C
===================================================================
--- g++.old-deja/g++.brendan/cvt3.C	(revision 155123)
+++ g++.old-deja/g++.brendan/cvt3.C	(working copy)
@@ -38,7 +38,7 @@ struct bar
 class nnyacc
 {
 public:
-      static void assign(void*& lval, void*& rval); // { dg-message "candidates" }
+      static void assign(void*& lval, void*& rval); // { dg-message "candidate is" }
 };
 
 void
Index: g++.old-deja/g++.brendan/overload4.C
===================================================================
--- g++.old-deja/g++.brendan/overload4.C	(revision 155123)
+++ g++.old-deja/g++.brendan/overload4.C	(working copy)
@@ -5,7 +5,7 @@
   class B
   {
   public:
-	static void WantsNew (NewObject creator); // { dg-message "candidates" }
+	static void WantsNew (NewObject creator); // { dg-message "candidate is" }
   };
   
   class A
Index: g++.old-deja/g++.jason/conversion11.C
===================================================================
--- g++.old-deja/g++.jason/conversion11.C	(revision 155123)
+++ g++.old-deja/g++.jason/conversion11.C	(working copy)
@@ -14,7 +14,7 @@ public:
 
 class Something {
 public:
-  void DoSomething(Ding A);	// { dg-message "candidates" } referred to
+  void DoSomething(Ding A);	// { dg-message "candidate is" } referred to
 };
 
 void DoSomething(Ding A);
Index: g++.old-deja/g++.jason/scoping10.C
===================================================================
--- g++.old-deja/g++.jason/scoping10.C	(revision 155123)
+++ g++.old-deja/g++.jason/scoping10.C	(working copy)
@@ -3,7 +3,7 @@
 
 void f (char *);
 struct A {
-  void f ();			// { dg-message "candidates" } referred to 
+  void f ();			// { dg-message "candidate is" } referred to 
 };
 struct B : public A {
   void g (char *);
Index: g++.old-deja/g++.niklas/t120.C
===================================================================
--- g++.old-deja/g++.niklas/t120.C	(revision 155123)
+++ g++.old-deja/g++.niklas/t120.C	(working copy)
@@ -3,4 +3,4 @@
 typedef void (*T) (...);
 void f ();
 struct S { void g (T); void h() { g(f); } };// { dg-error "match" "match" } 
-// { dg-message "candidates" "note" { target *-*-* } 5 }
+// { dg-message "candidate is" "note" { target *-*-* } 5 }
Index: g++.old-deja/g++.niklas/t121.C
===================================================================
--- g++.old-deja/g++.niklas/t121.C	(revision 155123)
+++ g++.old-deja/g++.niklas/t121.C	(working copy)
@@ -3,4 +3,4 @@
 void f ();
 void g1 (void (*) (...)); void h1 () { g1 (f); }// { dg-error "invalid conversion" }
 struct S { void g2 (void (*) (...)); void h2 () { g2 (f); } };// { dg-error "match" "match" } 
-// { dg-message "candidates" "note" { target *-*-* } 5 }
+// { dg-message "candidate is" "note" { target *-*-* } 5 }
Index: g++.old-deja/g++.other/expr1.C
===================================================================
--- g++.old-deja/g++.other/expr1.C	(revision 155123)
+++ g++.old-deja/g++.other/expr1.C	(working copy)
@@ -3,7 +3,7 @@
 // Simplified from bug report by Trevor Taylor <ttaylor@powerup.com.au>
 
 struct T {
-  int operator()(int) { } // { dg-message "candidates" }
+  int operator()(int) { } // { dg-message "candidate is" }
 };
 
 int main() {
Index: g++.old-deja/g++.other/pmf3.C
===================================================================
--- g++.old-deja/g++.other/pmf3.C	(revision 155123)
+++ g++.old-deja/g++.other/pmf3.C	(working copy)
@@ -3,7 +3,7 @@
 // Bug: g++ was crashing after giving errors.
 
 template<class T>
-  void connect_to_method( // { dg-message "candidates are" }
+  void connect_to_method( // { dg-message "candidate is" }
     T *receiver,
     void (T::*method)())
   {}
Index: g++.old-deja/g++.other/crash24.C
===================================================================
--- g++.old-deja/g++.other/crash24.C	(revision 155123)
+++ g++.old-deja/g++.other/crash24.C	(working copy)
@@ -7,7 +7,7 @@ class foo {
    friend class __iterator;
    typedef __iterator const_iterator;
    virtual ~foo() { }
-   __iterator begin();				// { dg-message "candidates" } 
+   __iterator begin();				// { dg-message "candidate is" } 
 };
 static void iteratorTest(const foo &x)
 {
Index: g++.old-deja/g++.benjamin/15800-1.C
===================================================================
--- g++.old-deja/g++.benjamin/15800-1.C	(revision 155123)
+++ g++.old-deja/g++.benjamin/15800-1.C	(working copy)
@@ -5,7 +5,7 @@
 struct panama {
   panama();
   panama(panama &);
-  panama& operator=(panama&); // { dg-message "candidates" }
+  panama& operator=(panama&); // { dg-message "candidate is" }
 };
 
 extern panama dig();
Index: g++.old-deja/g++.law/operators9.C
===================================================================
--- g++.old-deja/g++.law/operators9.C	(revision 155123)
+++ g++.old-deja/g++.law/operators9.C	(working copy)
@@ -10,7 +10,7 @@ class B
 {
 public:
       operator=(B &); // { dg-error "no type" }
-      // { dg-message "candidates" "note" { target *-*-* } 12 }
+      // { dg-message "candidate is" "note" { target *-*-* } 12 }
 };
 
 void
Index: g++.old-deja/g++.law/arm9.C
===================================================================
--- g++.old-deja/g++.law/arm9.C	(revision 155123)
+++ g++.old-deja/g++.law/arm9.C	(working copy)
@@ -19,7 +19,7 @@ class B : public A {
 public:
     void set (f2 f);
 };
-void B::set (f2 f) { std::cout << "called B\n";} // { dg-message "candidates" }
+void B::set (f2 f) { std::cout << "called B\n";} // { dg-message "candidate is" }
 
 int main() {
     B b;
Index: g++.old-deja/g++.law/enum4.C
===================================================================
--- g++.old-deja/g++.law/enum4.C	(revision 155123)
+++ g++.old-deja/g++.law/enum4.C	(working copy)
@@ -11,7 +11,7 @@ enum Enum {enumerator1, enumerator2};
 struct Struct
 {
   int i;
-      int getI(Enum) {return i;} // { dg-message "candidates" }
+      int getI(Enum) {return i;} // { dg-message "candidate is" }
 };
 
 int funct (Enum)
Index: g++.old-deja/g++.law/arg11.C
===================================================================
--- g++.old-deja/g++.law/arg11.C	(revision 155123)
+++ g++.old-deja/g++.law/arg11.C	(working copy)
@@ -9,7 +9,7 @@ struct String { String(const char*); };
 
 struct Ack { Ack(String); };
 
-struct S { void method(Ack); };	// { dg-message "candidates" } referenced below
+struct S { void method(Ack); };	// { dg-message "candidate is" } referenced below
 
 void function(Ack);
 
Index: g++.old-deja/g++.mike/p2431.C
===================================================================
--- g++.old-deja/g++.mike/p2431.C	(revision 155123)
+++ g++.old-deja/g++.mike/p2431.C	(working copy)
@@ -3,7 +3,7 @@
 class A
 {
 	public:
-      A(A &); // { dg-message "candidates" }
+      A(A &); // { dg-message "candidate is" }
 };
 
 class B
Index: g++.old-deja/g++.mike/p438.C
===================================================================
--- g++.old-deja/g++.mike/p438.C	(revision 155123)
+++ g++.old-deja/g++.mike/p438.C	(working copy)
@@ -12,7 +12,7 @@ class C
 class D
 {
    public:
-   void a(C& b); // { dg-message "candidates" }
+   void a(C& b); // { dg-message "candidate is" }
 };
 
 void C::test() const
Index: g++.old-deja/g++.mike/p9068.C
===================================================================
--- g++.old-deja/g++.mike/p9068.C	(revision 155123)
+++ g++.old-deja/g++.mike/p9068.C	(working copy)
@@ -2,7 +2,7 @@
 // prms-id: 9068
 
 struct ostream {
-  void operator<< (int);	// { dg-message "candidates" } fn ref in err msg
+  void operator<< (int);	// { dg-message "candidate is" } fn ref in err msg
 };
 
 class C {
Index: g++.old-deja/g++.mike/p11110.C
===================================================================
--- g++.old-deja/g++.mike/p11110.C	(revision 155123)
+++ g++.old-deja/g++.mike/p11110.C	(working copy)
@@ -6,7 +6,7 @@ class data;
 class conatiner {
 public:
   virtual void* first    ();
-  virtual data* contents (void* i);     // { dg-message "candidates" }
+  virtual data* contents (void* i);     // { dg-message "candidate is" }
 };
 
 class user {
Index: g++.old-deja/g++.bugs/900330_02.C
===================================================================
--- g++.old-deja/g++.bugs/900330_02.C	(revision 155123)
+++ g++.old-deja/g++.bugs/900330_02.C	(working copy)
@@ -19,7 +19,7 @@ struct B {
 };
 
 struct D : public B {
-  int f(struct B);		// { dg-message "candidates" } referred to below
+  int f(struct B);		// { dg-message "candidate is" } referred to below
 };
 
 void h(D* pd)
cp/
2009-12-10  Shujing Zhao  <pearly.zhao@oracle.com>

	* cp-tree.h (get_spaces):New prototype.
	* pt.c (get_spaces): New function.
	(print_chained_functions): New function.
	(print_candidates): Reformat error messages to allow easier
	translation.
	(most_specialized_class): Likewise.
	* call.c (print_z_candidates): Likewise.	

testsuite/
2009-12-10  Shujing Zhao  <pearly.zhao@oracle.com>

	* g++.dg/other/error20.C: Adjust dg-message strings.
	* g++.dg/other/error31.C: Likewise.
	* g++.dg/rtti/typeid6.C: Likewise.
	* g++.dg/ext/ms-1.C: Likewise.
	* g++.dg/parse/error19.C: Likewise.
	* g++.dg/parse/crash5.C: Likewise.
	* g++.dg/cpp0x/explicit4.C: Likewise.
	* g++.dg/template/ptrmem4.C: Likewise.
	* g++.dg/template/crash37.C: Likewise.
	* g++.dg/template/qualttp5.C: Likewise.
	* g++.dg/template/local6.C: Likewise.
	* g++.dg/template/instantiate5.C: Likewise.
	* g++.old-deja/g++.brendan/overload1.C: Likewise.
	* g++.old-deja/g++.brendan/cvt3.C: Likewise.
	* g++.old-deja/g++.brendan/overload4.C: Likewise.
	* g++.old-deja/g++.jason/conversion11.C: Likewise.
	* g++.old-deja/g++.jason/scoping10.C: Likewise.
	* g++.old-deja/g++.other/expr1.C: Likewise.
	* g++.old-deja/g++.other/pmf3.C: Likewise.
	* g++.old-deja/g++.other/crash24.C: Likewise.
	* g++.old-deja/g++.niklas/t120.C: Likewise.
	* g++.old-deja/g++.niklas/t121.C: Likewise.
	* g++.old-deja/g++.law/operators9.C: Likewise.
	* g++.old-deja/g++.law/arm9.C: Likewise.
	* g++.old-deja/g++.law/enum4.C: Likewise.
	* g++.old-deja/g++.law/arg11.C: Likewise.
	* g++.old-deja/g++.benjamin/15800-1.C: Likewise.
	* g++.old-deja/g++.mike/p2431.C: Likewise.
	* g++.old-deja/g++.mike/p438.C: Likewise.
	* g++.old-deja/g++.mike/p9068.C: Likewise.
	* g++.old-deja/g++.mike/p11110.C: Likewise.
	* g++.old-deja/g++.bugs/900330_02.C: Likewise.


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