diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/objc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/objc/objc-act.c | 5 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/objc.dg/incomplete-type-1.m | 22 |
4 files changed, 36 insertions, 2 deletions
diff --git a/gcc/objc/ChangeLog b/gcc/objc/ChangeLog index cdfb588..16b774d 100644 --- a/gcc/objc/ChangeLog +++ b/gcc/objc/ChangeLog @@ -1,3 +1,9 @@ +2010-12-28 Nicola Pero <nicola.pero@meta-innovation.com> + + PR objc/47073 + * objc-act.c (encode_method_prototype): Fixed both location and + format string of error "type %qT does not have a known size". + 2010-12-26 Nicola Pero <nicola.pero@meta-innovation.com> * config-lang.in (gtfiles): Added c-family/c-cppbuiltin.c. diff --git a/gcc/objc/objc-act.c b/gcc/objc/objc-act.c index 2ac51bb..ba6c810 100644 --- a/gcc/objc/objc-act.c +++ b/gcc/objc/objc-act.c @@ -5965,8 +5965,9 @@ encode_method_prototype (tree method_decl) /* If a type size is not known, bail out. */ if (sz < 0) { - error ("type %q+D does not have a known size", - type); + error_at (DECL_SOURCE_LOCATION (method_decl), + "type %qT does not have a known size", + type); /* Pretend that the encoding succeeded; the compilation will fail nevertheless. */ goto finish_encoding; diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index cf8ff72..563fc03 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2010-12-28 Nicola Pero <nicola.pero@meta-innovation.com> + + PR objc/47073 + * objc.dg/incomplete-type-1.m: New test. + 2010-12-27 Jakub Jelinek <jakub@redhat.com> PR c++/46626 diff --git a/gcc/testsuite/objc.dg/incomplete-type-1.m b/gcc/testsuite/objc.dg/incomplete-type-1.m new file mode 100644 index 0000000..f1e875f --- /dev/null +++ b/gcc/testsuite/objc.dg/incomplete-type-1.m @@ -0,0 +1,22 @@ +/* Contributed by Nicola Pero <nicola.pero@meta-innovation.com>, December 2010. */ +/* { dg-do compile } */ + +#include <objc/objc.h> + +enum type1; +struct type2; + +@interface MyObject +- (void) method1: (enum type1)argument; +- (void) method2: (struct type2)argument; +@end + +@implementation MyObject +- (void) method1: (enum type1)argument { /* { dg-error "does not have a known size" } */ + return; +} +- (void) method2: (struct type2)argument { /* { dg-error "does not have a known size" } */ + return; +} +@end + |