gcc

~vcs-imports/gcc/+git/gcc:concepts-cxx2a

Last commit made on 2019-10-04
Get this branch:
git clone -b concepts-cxx2a https://git.launchpad.net/~vcs-imports/gcc/+git/gcc

Branch merges

Branch information

Name:
concepts-cxx2a
Repository:
lp:~vcs-imports/gcc/+git/gcc

Recent commits

055ce33... by Jason Merrill <email address hidden>

 * pt.c (for_each_template_parm_r): Handle SCOPE_REF.

405a33f... by Jason Merrill <email address hidden>

 * doc/invoke.texi: Document -fconcepts-ts.

7b12b14... by Jason Merrill <email address hidden>

Add FIXMEs about nested requirements.

8777e16... by Jason Merrill <email address hidden>

Remove a redundant deferring_access_check_sentinel.

ad8a633... by Jason Merrill <email address hidden>

More formatting fixes.

f39deea... by Jason Merrill <email address hidden>

 Fix satisfaction changing due to class completeness.

 * class.c (finish_struct_1): Call clear_satisfaction_cache.
 * cp-tree.h (TINFO_CONSTRAINTS_UNSATISIFIED)
 (TINFO_CONSTRAINTS_SATISIFIED): Remove.
 * constraint.cc (decl_satisfied_cache): New.
 (clear_satisfaction_cache): Clear it.
 (constraints_satisfied_p): Use it instead.

eaa9119... by Jason Merrill <email address hidden>

Don't clear satisfaction cache for an automatic constant.

f0ee138... by jason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>

Improve C++ fold caching efficiency.

While looking at concepts caching I noticed that we were clearing the caches
unnecessarily for non-constant initialization, which shouldn't affect
folding.

 * typeck2.c (store_init_value): Only clear_cv_and_fold_caches if the
 value is constant.

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

e67c031... by Andrew Sutton <email address hidden>

Cache satisfaction results.

gcc/cp/
 * constexpr.c (clear_cv_and_fold_caches): Clear the satisfaction cache.
 * constraint.cc (parameter_mapping_equivalent_p): Moved from logic.cc.
 (atomic_constraints_identical_p): Likewise, and also renamed.
 (hash_atomic_constraint): Likewise.
 (sat_entry): New class for hashing satisfaction results.
 (sat_hasher): New hash traits.
 (get_satisfaction): New. Returns cached satisfaction result.
 (save_satisfaction): New. Caches a satisfaction result.
 (clear_satisfaction_cache): New.
 (satisfaction_cache): New. Helps manage satisfaction cache requests.
 (satisfy_atom): Use the satisfaction cache.
 * cp-tree.h (clear_satisfaction_cache): Declare.
 (atomic_constraints_identical_p): Likewise.
 (atomic_constraints_identical_p): Likewise.
 * logic.cc: Move functions into constraints.
 (constraint_hash::equal): Use renamed comparison function.

248a7a9... by Jason Merrill <email address hidden>

Combine parsing_constraint_expression and satisfying_constraint_p.

The one was being used for constraint parsing and the latter for constraint
substitution, for which we want similar semantics. I also moved
processing_constraint_expression into scope_chain so that it's handled
properly by push_to_top_level. Note the FIXME I added in accessible_p.