summaryrefslogtreecommitdiff
path: root/gcc/objc
diff options
context:
space:
mode:
authorNicola Pero <nicola.pero@meta-innovation.com>2010-10-17 21:52:09 +0000
committerNicola Pero <nicola@gcc.gnu.org>2010-10-17 21:52:09 +0000
commit90fbfdc31adfff5a614898af64600a4e34371345 (patch)
tree2d6e2e2e27434afe6a8c78faa3fe2eabe7e5ee36 /gcc/objc
parent2e01b76611fdd27cfb04d3bbb1b349cbecb9230c (diff)
downloadgcc-90fbfdc31adfff5a614898af64600a4e34371345.tar.gz
In gcc/: 2010-10-17 Nicola Pero <nicola.pero@meta-innovation.com>
In gcc/: 2010-10-17 Nicola Pero <nicola.pero@meta-innovation.com> Merge from 'apple/trunk' branch on FSF servers. 2006-03-27 Fariborz Jahanian <fjahanian@apple.com> Radar 4133425 * c-decl.c (undeclared_variable): Issue diagnostic on private 'ivar' access. In gcc/c-family/: 2010-10-17 Nicola Pero <nicola.pero@meta-innovation.com> Merge from 'apple/trunk' branch on FSF servers. 2006-03-27 Fariborz Jahanian <fjahanian@apple.com> Radar 4133425 * c-common.h (objc_diagnose_private_ivar): New decl. * stub-objc.c (objc_diagnose_private_ivar): New stub. In gcc/cp/: 2010-10-17 Nicola Pero <nicola.pero@meta-innovation.com> Merge from apple/trunk branch on FSF servers. 2006-03-27 Fariborz Jahanian <fjahanian@apple.com> Radar 4133425 * lex.c (unqualified_name_lookup_error): Issue diagnostic for private 'ivar' access. In gcc/objc/: 2010-10-17 Nicola Pero <nicola.pero@meta-innovation.com> Merge from 'apple/trunk' branch on FSF servers. 2006-03-27 Fariborz Jahanian <fjahanian@apple.com> Radar 4133425 * objc-act.c (objc_diagnose_private_ivar): New. In gcc/testsuite/: 2010-10-17 Nicola Pero <nicola.pero@meta-innovation.com> Merge from 'apple/trunk' branch on FSF servers. 2006-03-27 Fariborz Jahanian <fjahanian@apple.com> Radar 4133425 * objc.dg/private-1.m: Test modified. * obj-c++.dg/private-1.mm: Test modified. From-SVN: r165601
Diffstat (limited to 'gcc/objc')
-rw-r--r--gcc/objc/ChangeLog9
-rw-r--r--gcc/objc/objc-act.c19
2 files changed, 28 insertions, 0 deletions
diff --git a/gcc/objc/ChangeLog b/gcc/objc/ChangeLog
index 7917d60fa9b..83bef4deecb 100644
--- a/gcc/objc/ChangeLog
+++ b/gcc/objc/ChangeLog
@@ -1,3 +1,12 @@
+2010-10-17 Nicola Pero <nicola.pero@meta-innovation.com>
+
+ Merge from 'apple/trunk' branch on FSF servers.
+
+ 2006-03-27 Fariborz Jahanian <fjahanian@apple.com>
+
+ Radar 4133425
+ * objc-act.c (objc_diagnose_private_ivar): New.
+
2010-10-17 Iain Sandoe <iains@gcc.gnu.org>
* objc-act.c: Rename 'objc_public_flag' to objc_ivar_visibility and
diff --git a/gcc/objc/objc-act.c b/gcc/objc/objc-act.c
index 1be52d91b5c..904095495db 100644
--- a/gcc/objc/objc-act.c
+++ b/gcc/objc/objc-act.c
@@ -10821,6 +10821,25 @@ generate_objc_image_info (void)
finish_var_decl (decl, objc_build_constructor (TREE_TYPE (decl), v));
}
+/* Routine is called to issue diagnostic when reference to a private
+ ivar is made and no other variable with same name is found in
+ current scope. */
+bool
+objc_diagnose_private_ivar (tree id)
+{
+ tree ivar;
+ if (!objc_method_context)
+ return false;
+ ivar = is_ivar (objc_ivar_chain, id);
+ if (ivar && is_private (ivar))
+ {
+ error ("instance variable %qs is declared private",
+ IDENTIFIER_POINTER (id));
+ return true;
+ }
+ return false;
+}
+
/* Look up ID as an instance variable. OTHER contains the result of
the C or C++ lookup, which we may want to use instead. */
/* Also handle use of property as setter/getter. */