]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
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 284a93315a6bd295607be3af1ae39493c893f0e4..0aca2e0136e91493ea9fc971e8bdb2de79c28587 100644 (file)
@@ -1,3 +1,9 @@
+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.
index 3252f368fc2bce7a1032d96b43812a70ca6eb046..0e6ce130f8d383471a48d93dcdf831f2a9ff0422 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 a1dbc3fb03fdf1bbc41ae4cf54c160d4cf5efbbb..e83ff1a7800daa0db9cb5ec950a2825c25da62b2 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 53a51982161f705cf3d8e38b214da118a8bb6b8a..748810b409ecb9713685d04d5f5080e4c8ef336a 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" } 
 }