cp-tree.h: Clarify exception spec node comment.

* cp-tree.h: Clarify exception spec node comment.
	* except.c (nothrow_spec_p): Simplify by checking node-equality.

From-SVN: r244576
This commit is contained in:
Nathan Sidwell 2017-01-18 12:52:24 +00:00 committed by Nathan Sidwell
parent 2c65d990eb
commit 96176bb3f1
3 changed files with 14 additions and 8 deletions

View File

@ -1,5 +1,8 @@
2017-01-18 Nathan Sidwell <nathan@acm.org>
* cp-tree.h: Clarify exception spec node comment.
* except.c (nothrow_spec_p): Simplify by checking node-equality.
PR c++/79091
* mangle.c (write_exception_spec): Check nothrow explicitly.
(write_encoding): Don't increment processing_template_decl around

View File

@ -1212,7 +1212,8 @@ extern GTY(()) tree cp_global_trees[CPTI_MAX];
#define lang_name_c cp_global_trees[CPTI_LANG_NAME_C]
#define lang_name_cplusplus cp_global_trees[CPTI_LANG_NAME_CPLUSPLUS]
/* Exception specifier used for throw(). */
/* Exception specifiers used for throw(), noexcept(true) and
noexcept(false). We rely on these being uncloned. */
#define empty_except_spec cp_global_trees[CPTI_EMPTY_EXCEPT_SPEC]
#define noexcept_true_spec cp_global_trees[CPTI_NOEXCEPT_TRUE_SPEC]
#define noexcept_false_spec cp_global_trees[CPTI_NOEXCEPT_FALSE_SPEC]

View File

@ -1143,15 +1143,17 @@ bool
nothrow_spec_p (const_tree spec)
{
gcc_assert (!DEFERRED_NOEXCEPT_SPEC_P (spec));
if (spec == NULL_TREE
|| TREE_VALUE (spec) != NULL_TREE
|| spec == noexcept_false_spec)
return false;
if (TREE_PURPOSE (spec) == NULL_TREE
if (spec == empty_except_spec
|| spec == noexcept_true_spec)
return true;
gcc_assert (processing_template_decl
|| TREE_PURPOSE (spec) == error_mark_node);
gcc_assert (!spec
|| TREE_VALUE (spec)
|| spec == noexcept_false_spec
|| TREE_PURPOSE (spec) == error_mark_node
|| processing_template_decl);
return false;
}