summaryrefslogtreecommitdiff
path: root/gcc/objc
diff options
context:
space:
mode:
authordpatel <dpatel@138bc75d-0d04-0410-961f-82ee72b054a4>2002-07-02 23:06:04 +0000
committerdpatel <dpatel@138bc75d-0d04-0410-961f-82ee72b054a4>2002-07-02 23:06:04 +0000
commit56dc91a08dfd178da61a32f8d7ee530eb31e213a (patch)
tree406a58c721188fa853910f08a5a933fc5259625b /gcc/objc
parente3905c417c729df1d42b6e94acf45effa3044127 (diff)
downloadgcc-56dc91a08dfd178da61a32f8d7ee530eb31e213a.tar.gz
* objc/objc-act.c (adjust_type_for_id_default): Do not allow an
object as parameter. Prevent something like 'NSObject' to be used as the type for a method argument. testsuite: * objc.dg/param-1.m: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@55197 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/objc')
-rw-r--r--gcc/objc/objc-act.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/gcc/objc/objc-act.c b/gcc/objc/objc-act.c
index c0db5993d56..e8f97ac4bcb 100644
--- a/gcc/objc/objc-act.c
+++ b/gcc/objc/objc-act.c
@@ -4465,6 +4465,10 @@ adjust_type_for_id_default (type)
chain;
chain = TREE_CHAIN (chain))
{
+ if (TREE_CODE (TREE_VALUE (chain)) == RECORD_TYPE
+ && !(TREE_VALUE (type)
+ && TREE_CODE (TREE_VALUE (type)) == INDIRECT_REF))
+ error ("can not use an object as parameter to a method\n");
if (!is_objc_type_qualifier (TREE_VALUE (chain)))
return type;
}