[Bug c++/83871] wrong code for attribute const and pure on distinct template specializations

2018-02-28 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83871

--- Comment #6 from Jakub Jelinek  ---
Author: jakub
Date: Wed Feb 28 18:56:36 2018
New Revision: 258079

URL: https://gcc.gnu.org/viewcvs?rev=258079=gcc=rev
Log:
PR c++/83871
PR c++/83503
* pt.c (INCLUDE_STRING): Remove define.
(warn_spec_missing_attributes): Use pretty_printer instead of
std::string.  Fix up inform call so that the list of attributes
is in %s argument.

Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/pt.c

[Bug c++/83871] wrong code for attribute const and pure on distinct template specializations

2018-02-28 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83871

--- Comment #5 from Jakub Jelinek  ---
Author: jakub
Date: Wed Feb 28 09:43:10 2018
New Revision: 258059

URL: https://gcc.gnu.org/viewcvs?rev=258059=gcc=rev
Log:
PR c++/83871
PR c++/83503
* g++.dg/ext/attr-warning.C: Remove -fdump-tree-optimized from
dg-options.
* g++.dg/ext/attr-nonnull.C: Likewise.
* g++.dg/ext/attr-noinline.C: Fix syntax in scan-tree-dump-not
directives.
* g++.dg/ext/attr-noinline-2.C: Likewise.
* g++.dg/ext/attr-noreturn-2.C: Use -fdump-tree-optimized instead of
-fdump-tree-eh in dg-options.

Modified:
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/g++.dg/ext/attr-noinline-2.C
trunk/gcc/testsuite/g++.dg/ext/attr-noinline.C
trunk/gcc/testsuite/g++.dg/ext/attr-nonnull.C
trunk/gcc/testsuite/g++.dg/ext/attr-noreturn-2.C
trunk/gcc/testsuite/g++.dg/ext/attr-warning.C

[Bug c++/83871] wrong code for attribute const and pure on distinct template specializations

2018-02-27 Thread msebor at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83871

Martin Sebor  changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED
   Target Milestone|--- |8.0

--- Comment #4 from Martin Sebor  ---
Fixed via r258045.

[Bug c++/83871] wrong code for attribute const and pure on distinct template specializations

2018-02-27 Thread msebor at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83871

--- Comment #3 from Martin Sebor  ---
Author: msebor
Date: Tue Feb 27 22:28:21 2018
New Revision: 258045

URL: https://gcc.gnu.org/viewcvs?rev=258045=gcc=rev
Log:
PR c++/83871 - wrong code for attribute const and pure on distinct template
specializations
PR c++/83503 - [8 Regression] bogus -Wattributes for const and pure on function
template specialization

gcc/ChangeLog:

PR c++/83871
* gcc/doc/invoke.texi (-Wmissing-attributes): New option.
* gcc/print-tree.c (print_node): Handle DECL_UNINLINABLE.

gcc/c-family/ChangeLog:

PR c++/83871
* c.opt (-Wmissing-attributes): New option.

gcc/cp/ChangeLog:

PR c++/83871
PR c++/83503
* cp-tree.h (warn_spec_missing_attributes): New function.
((check_explicit_specialization): Add an argument.  Call the above
function.
* decl.c (duplicate_decls): Avoid applying primary function template's
attributes to its explicit specializations.
cp/pt.c (warn_spec_missing_attributes): Define.

gcc/testsuite/ChangeLog:

PR c++/83871
PR c++/83503
* g++.dg/Wmissing-attributes.C: New test.
* g++.dg/ext/attr-const-pure.C: New test.
* g++.dg/ext/attr-const.C: New test.
* g++.dg/ext/attr-deprecated-2.C: New test.
* g++.dg/ext/attr-malloc-2.C: New test.
* g++.dg/ext/attr-malloc.C: New test.
* g++.dg/ext/attr-noinline-2.C: New test.
* g++.dg/ext/attr-noinline.C: New test.
* g++.dg/ext/attr-nonnull.C: New test.
* g++.dg/ext/attr-noreturn-2.C: New test.
* g++.dg/ext/attr-noreturn.C: New test.
* g++.dg/ext/attr-nothrow-2.C: New test.
* g++.dg/ext/attr-nothrow.C: New test.
* g++.dg/ext/attr-optimize.C: New test.
* g++.dg/ext/attr-pure.C: New test.
* g++.dg/ext/attr-returns-nonnull.C: New test.
* g++.dg/ext/attr-warning.C: New test.


Added:
trunk/gcc/testsuite/g++.dg/Wmissing-attributes.C
trunk/gcc/testsuite/g++.dg/ext/attr-const-pure.C
trunk/gcc/testsuite/g++.dg/ext/attr-const.C
trunk/gcc/testsuite/g++.dg/ext/attr-deprecated-2.C
trunk/gcc/testsuite/g++.dg/ext/attr-malloc-2.C
trunk/gcc/testsuite/g++.dg/ext/attr-malloc.C
trunk/gcc/testsuite/g++.dg/ext/attr-noinline-2.C
trunk/gcc/testsuite/g++.dg/ext/attr-noinline.C
trunk/gcc/testsuite/g++.dg/ext/attr-nonnull.C
trunk/gcc/testsuite/g++.dg/ext/attr-noreturn-2.C
trunk/gcc/testsuite/g++.dg/ext/attr-noreturn.C
trunk/gcc/testsuite/g++.dg/ext/attr-nothrow-2.C
trunk/gcc/testsuite/g++.dg/ext/attr-nothrow.C
trunk/gcc/testsuite/g++.dg/ext/attr-optimize.C
trunk/gcc/testsuite/g++.dg/ext/attr-pure.C
trunk/gcc/testsuite/g++.dg/ext/attr-returns-nonnull.C
trunk/gcc/testsuite/g++.dg/ext/attr-warning.C
Modified:
trunk/gcc/ChangeLog
trunk/gcc/c-family/ChangeLog
trunk/gcc/c-family/c.opt
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/cp-tree.h
trunk/gcc/cp/decl.c
trunk/gcc/cp/pt.c
trunk/gcc/doc/invoke.texi
trunk/gcc/print-tree.c
trunk/gcc/testsuite/ChangeLog

[Bug c++/83871] wrong code for attribute const and pure on distinct template specializations

2018-02-08 Thread msebor at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83871

Martin Sebor  changed:

   What|Removed |Added

   Keywords||patch

--- Comment #2 from Martin Sebor  ---
Patch: https://gcc.gnu.org/ml/gcc-patches/2018-02/msg00154.html

[Bug c++/83871] wrong code for attribute const and pure on distinct template specializations

2018-02-02 Thread msebor at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83871

Martin Sebor  changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2018-02-03
   Assignee|unassigned at gcc dot gnu.org  |msebor at gcc dot 
gnu.org
 Ever confirmed|0   |1
  Known to fail||6.4.0, 7.3.0, 8.0

--- Comment #1 from Martin Sebor  ---
A solution for this bug is necessary to fix pr83503 and pr84158.  I'm working
on a patch.