OSDN Git Service

PR c++/17413
authorreichelt <reichelt@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 2 Feb 2005 21:58:46 +0000 (21:58 +0000)
committerreichelt <reichelt@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 2 Feb 2005 21:58:46 +0000 (21:58 +0000)
* pt.c (check_instantiated_args): Improve error message.
Fix logic when to print its second part.

PR c++/17413
* g++.dg/template/local4.C: Tweak.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@94618 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/cp/ChangeLog
gcc/cp/pt.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/template/local4.C

index 284a933..0aca2e0 100644 (file)
@@ -1,5 +1,11 @@
 2005-02-02  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
 
+       PR c++/17413
+       * pt.c (check_instantiated_args): Improve error message.
+       Fix logic when to print its second part.
+
+2005-02-02  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
+
        * cp-tree.h (complete_type_or_else): Remove macro.
        (complete_type_or_diagnostic): Rename to complete_type_or_else
        and remove last argument.
index 3252f36..0e6ce13 100644 (file)
@@ -8903,6 +8903,7 @@ check_instantiated_args (tree tmpl, tree args, tsubst_flags_t complain)
 {
   int ix, len = DECL_NTPARMS (tmpl);
   bool result = false;
+  bool error_p = complain & tf_error;
 
   for (ix = 0; ix != len; ix++)
     {
@@ -8920,10 +8921,11 @@ check_instantiated_args (tree tmpl, tree args, tsubst_flags_t complain)
          if (nt)
            {
              if (TYPE_ANONYMOUS_P (nt))
-               error ("%qT uses anonymous type", t);
+               error ("%qT is/uses anonymous type", t);
              else
                error ("%qT uses local type %qT", t, nt);
              result = true;
+             error_p = true;
            }
          /* In order to avoid all sorts of complications, we do not
             allow variably-modified types as template arguments.  */
@@ -8945,7 +8947,7 @@ check_instantiated_args (tree tmpl, tree args, tsubst_flags_t complain)
          result = true;
        }
     }
-  if (result && complain & tf_error)
+  if (result && error_p)
     error ("  trying to instantiate %qD", tmpl);
   return result;
 }
index a1dbc3f..e83ff1a 100644 (file)
@@ -1,3 +1,8 @@
+2005-02-02  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
+
+       PR c++/17413
+       * g++.dg/template/local4.C: Tweak.
+
 2005-02-02  Richard Sandiford  <rsandifo@redhat.com>
 
        PR tree-optimization/19578
index 53a5198..748810b 100644 (file)
@@ -7,5 +7,5 @@ int main () {
   // We do not simply use "local|match" on line 10 because we want to
   // make sure that "local" appears.
   // { dg-error "local" "" { target *-*-* } 10 }
-  foo<S> (); // { dg-error "match" } 
+  foo<S> (); // { dg-error "trying|match" } 
 }