-
- Downloads
C++: fix-it hints suggesting accessors for private fields
gcc/cp/ChangeLog: * call.c (enforce_access): Add access_failure_info * param and use it to record access failures. * cp-tree.h (class access_failure_info): New class. (enforce_access): Add access_failure_info * param, defaulting to NULL. (lookup_member): Likewise. (locate_field_accessor): New function decl. (perform_or_defer_access_check): Add access_failure_info * param, defaulting to NULL. * search.c (lookup_member): Add access_failure_info * param and pass it on to call to perform_or_defer_access_check. (matches_code_and_type_p): New function. (field_access_p): New function. (direct_accessor_p): New function. (reference_accessor_p): New function. (field_accessor_p): New function. (struct locate_field_data): New struct. (dfs_locate_field_accessor_pre): New function. (locate_field_accessor): New function. * semantics.c (perform_or_defer_access_check): Add access_failure_info * param, and pass it on to call to enforce_access. * typeck.c (access_failure_info::record_access_failure): New method. (access_failure_info::maybe_suggest_accessor): New method. (finish_class_member_access_expr): Pass an access_failure_info instance to the lookup_member call, and call its maybe_suggest_accessor method afterwards. gcc/testsuite/ChangeLog: * g++.dg/other/accessor-fixits-1.C: New test case. * g++.dg/other/accessor-fixits-2.C: New test case. * g++.dg/other/accessor-fixits-3.C: New test case. * g++.dg/other/accessor-fixits-4.C: New test case. From-SVN: r248128
Showing
- gcc/cp/ChangeLog 30 additions, 0 deletionsgcc/cp/ChangeLog
- gcc/cp/call.c 7 additions, 1 deletiongcc/cp/call.c
- gcc/cp/cp-tree.h 28 additions, 3 deletionsgcc/cp/cp-tree.h
- gcc/cp/search.c 237 additions, 3 deletionsgcc/cp/search.c
- gcc/cp/semantics.c 5 additions, 3 deletionsgcc/cp/semantics.c
- gcc/cp/typeck.c 44 additions, 1 deletiongcc/cp/typeck.c
- gcc/testsuite/ChangeLog 7 additions, 0 deletionsgcc/testsuite/ChangeLog
- gcc/testsuite/g++.dg/other/accessor-fixits-1.C 178 additions, 0 deletionsgcc/testsuite/g++.dg/other/accessor-fixits-1.C
- gcc/testsuite/g++.dg/other/accessor-fixits-2.C 104 additions, 0 deletionsgcc/testsuite/g++.dg/other/accessor-fixits-2.C
- gcc/testsuite/g++.dg/other/accessor-fixits-3.C 15 additions, 0 deletionsgcc/testsuite/g++.dg/other/accessor-fixits-3.C
- gcc/testsuite/g++.dg/other/accessor-fixits-4.C 48 additions, 0 deletionsgcc/testsuite/g++.dg/other/accessor-fixits-4.C
Loading
Please register or sign in to comment