1 /* Stub functions for Objective-C and Objective-C++ routines
2    that are called from within the C and C++ front-ends,
3    respectively.
4    Copyright (C) 1991-2021 Free Software Foundation, Inc.
5 
6 This file is part of GCC.
7 
8 GCC is free software; you can redistribute it and/or modify it under
9 the terms of the GNU General Public License as published by the Free
10 Software Foundation; either version 3, or (at your option) any later
11 version.
12 
13 GCC is distributed in the hope that it will be useful, but WITHOUT ANY
14 WARRANTY; without even the implied warranty of MERCHANTABILITY or
15 FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
16 for more details.
17 
18 You should have received a copy of the GNU General Public License
19 along with GCC; see the file COPYING3.  If not see
20 <http://www.gnu.org/licenses/>.  */
21 
22 #include "config.h"
23 #include "system.h"
24 #include "coretypes.h"
25 #include "tree.h"
26 #include "vec.h"
27 
28 #include "c-common.h" /* for enum rid.  */
29 #include "c-objc.h"
30 
31 tree
objc_is_class_name(tree ARG_UNUSED (arg))32 objc_is_class_name (tree ARG_UNUSED (arg))
33 {
34   return 0;
35 }
36 
37 tree
objc_is_id(tree ARG_UNUSED (arg))38 objc_is_id (tree ARG_UNUSED (arg))
39 {
40   return 0;
41 }
42 
43 tree
objc_is_object_ptr(tree ARG_UNUSED (arg))44 objc_is_object_ptr (tree ARG_UNUSED (arg))
45 {
46   return 0;
47 }
48 
objc_diagnose_private_ivar(tree ARG_UNUSED (arg))49 bool objc_diagnose_private_ivar (tree ARG_UNUSED (arg))
50 {
51   return false;
52 }
53 
54 tree
objc_lookup_ivar(tree other,tree ARG_UNUSED (arg))55 objc_lookup_ivar (tree other, tree ARG_UNUSED (arg))
56 {
57   /* Just use whatever C/C++ found.  */
58   return other;
59 }
60 
61 void
objc_check_decl(tree ARG_UNUSED (decl))62 objc_check_decl (tree ARG_UNUSED (decl))
63 {
64 }
65 
66 void
objc_check_global_decl(tree ARG_UNUSED (decl))67 objc_check_global_decl (tree ARG_UNUSED (decl))
68 {
69 }
70 
71 tree
objc_common_type(tree ARG_UNUSED (type1),tree ARG_UNUSED (type2))72 objc_common_type (tree ARG_UNUSED (type1), tree ARG_UNUSED (type2))
73 {
74   return 0;
75 }
76 
77 bool
objc_compare_types(tree ARG_UNUSED (ltyp),tree ARG_UNUSED (rtyp),int ARG_UNUSED (argno),tree ARG_UNUSED (callee))78 objc_compare_types (tree ARG_UNUSED (ltyp), tree ARG_UNUSED (rtyp),
79 		    int ARG_UNUSED (argno), tree ARG_UNUSED (callee))
80 {
81   return false;
82 }
83 
84 bool
objc_have_common_type(tree ARG_UNUSED (ltyp),tree ARG_UNUSED (rtyp),int ARG_UNUSED (argno),tree ARG_UNUSED (callee))85 objc_have_common_type (tree ARG_UNUSED (ltyp), tree ARG_UNUSED (rtyp),
86 		       int ARG_UNUSED (argno), tree ARG_UNUSED (callee))
87 {
88   return false;
89 }
90 
91 void
objc_volatilize_decl(tree ARG_UNUSED (decl))92 objc_volatilize_decl (tree ARG_UNUSED (decl))
93 {
94 }
95 
96 tree
objc_rewrite_function_call(tree function,tree ARG_UNUSED (first_param))97 objc_rewrite_function_call (tree function, tree ARG_UNUSED (first_param))
98 {
99   return function;
100 }
101 
102 tree
objc_message_selector(void)103 objc_message_selector (void)
104 {
105   return 0;
106 }
107 
108 void
objc_declare_alias(tree ARG_UNUSED (alias),tree ARG_UNUSED (orig))109 objc_declare_alias (tree ARG_UNUSED (alias), tree ARG_UNUSED (orig))
110 {
111 }
112 
113 void
objc_declare_class(tree ARG_UNUSED (identifier))114 objc_declare_class (tree ARG_UNUSED (identifier))
115 {
116 }
117 
118 void
objc_declare_protocol(tree ARG_UNUSED (name),tree ARG_UNUSED (attributes))119 objc_declare_protocol (tree ARG_UNUSED (name), tree ARG_UNUSED (attributes))
120 {
121 }
122 
123 void
objc_start_protocol(tree ARG_UNUSED (proto),tree ARG_UNUSED (protorefs),tree ARG_UNUSED (attribs))124 objc_start_protocol (tree ARG_UNUSED (proto),
125 		     tree ARG_UNUSED (protorefs),
126 		     tree ARG_UNUSED (attribs))
127 {
128 }
129 
130 void
objc_set_method_opt(bool ARG_UNUSED (optional))131 objc_set_method_opt (bool ARG_UNUSED (optional))
132 {
133 }
134 
135 void
objc_start_class_interface(tree ARG_UNUSED (name),location_t,tree ARG_UNUSED (super),tree ARG_UNUSED (protos),tree ARG_UNUSED (attribs))136 objc_start_class_interface (tree ARG_UNUSED (name),
137 			    location_t /*name_loc*/,
138 			    tree ARG_UNUSED (super),
139 			    tree ARG_UNUSED (protos),
140 			    tree ARG_UNUSED (attribs))
141 {
142 }
143 
144 void
objc_start_category_interface(tree ARG_UNUSED (name),tree ARG_UNUSED (categ),tree ARG_UNUSED (protos),tree ARG_UNUSED (attribs))145 objc_start_category_interface (tree ARG_UNUSED (name),
146 			       tree ARG_UNUSED (categ),
147 			       tree ARG_UNUSED (protos),
148 			       tree ARG_UNUSED (attribs))
149 {
150 }
151 
152 void
objc_continue_interface(void)153 objc_continue_interface (void)
154 {
155 }
156 
157 void
objc_finish_interface(void)158 objc_finish_interface (void)
159 {
160 }
161 
162 void
objc_add_instance_variable(tree ARG_UNUSED (decl))163 objc_add_instance_variable (tree ARG_UNUSED (decl))
164 {
165 }
166 
167 void
objc_set_visibility(objc_ivar_visibility_kind ARG_UNUSED (vis))168 objc_set_visibility (objc_ivar_visibility_kind ARG_UNUSED (vis))
169 {
170 }
171 
172 void
objc_start_class_implementation(tree ARG_UNUSED (name),tree ARG_UNUSED (super))173 objc_start_class_implementation (tree ARG_UNUSED (name),
174 				 tree ARG_UNUSED (super))
175 {
176 }
177 
178 void
objc_start_category_implementation(tree ARG_UNUSED (name),tree ARG_UNUSED (categ))179 objc_start_category_implementation (tree ARG_UNUSED (name),
180 				    tree ARG_UNUSED (categ))
181 {
182 }
183 
184 void
objc_continue_implementation(void)185 objc_continue_implementation (void)
186 {
187 }
188 
189 void
objc_clear_super_receiver(void)190 objc_clear_super_receiver (void)
191 {
192 }
193 
194 void
objc_finish_implementation(void)195 objc_finish_implementation (void)
196 {
197 }
198 
199 void
objc_add_method_declaration(bool ARG_UNUSED (is_class_method),tree ARG_UNUSED (signature),tree ARG_UNUSED (attributes))200 objc_add_method_declaration (bool ARG_UNUSED (is_class_method),
201 			     tree ARG_UNUSED (signature),
202 			     tree ARG_UNUSED (attributes))
203 {
204 }
205 
206 bool
objc_start_method_definition(bool ARG_UNUSED (is_class_method),tree ARG_UNUSED (signature),tree ARG_UNUSED (attributes),tree ARG_UNUSED (expr))207 objc_start_method_definition (bool ARG_UNUSED (is_class_method),
208 			      tree ARG_UNUSED (signature),
209 			      tree ARG_UNUSED (attributes),
210 			      tree ARG_UNUSED (expr))
211 {
212   return true;
213 }
214 
215 void
objc_finish_method_definition(tree ARG_UNUSED (fndecl))216 objc_finish_method_definition (tree ARG_UNUSED (fndecl))
217 {
218 }
219 
220 bool
objc_method_decl(enum tree_code ARG_UNUSED (opcode))221 objc_method_decl (enum tree_code ARG_UNUSED(opcode))
222 {
223   return false;
224 }
225 
226 tree
objc_build_keyword_decl(tree ARG_UNUSED (selector),tree ARG_UNUSED (type),tree ARG_UNUSED (identifier),tree ARG_UNUSED (attributes))227 objc_build_keyword_decl (tree ARG_UNUSED (selector),
228 			 tree ARG_UNUSED (type),
229 			 tree ARG_UNUSED (identifier),
230 			 tree ARG_UNUSED (attributes))
231 {
232   return 0;
233 }
234 
235 tree
objc_build_method_signature(bool ARG_UNUSED (is_class_method),tree ARG_UNUSED (rettype),tree ARG_UNUSED (selectors),tree ARG_UNUSED (optparms),bool ARG_UNUSED (ellipsis))236 objc_build_method_signature (bool ARG_UNUSED (is_class_method),
237 			     tree ARG_UNUSED (rettype),
238 			     tree ARG_UNUSED (selectors),
239 			     tree ARG_UNUSED (optparms),
240 			     bool ARG_UNUSED (ellipsis))
241 {
242   return 0;
243 }
244 
245 tree
objc_build_encode_expr(tree ARG_UNUSED (expr))246 objc_build_encode_expr (tree ARG_UNUSED (expr))
247 {
248   return 0;
249 }
250 
251 tree
objc_build_protocol_expr(tree ARG_UNUSED (expr))252 objc_build_protocol_expr (tree ARG_UNUSED (expr))
253 {
254   return 0;
255 }
256 
257 tree
objc_build_selector_expr(location_t ARG_UNUSED (loc),tree ARG_UNUSED (expr))258 objc_build_selector_expr (location_t ARG_UNUSED (loc), tree ARG_UNUSED (expr))
259 {
260   return 0;
261 }
262 
263 tree
objc_build_message_expr(tree ARG_UNUSED (receiver),tree ARG_UNUSED (args))264 objc_build_message_expr (tree ARG_UNUSED (receiver), tree ARG_UNUSED (args))
265 {
266   return 0;
267 }
268 
269 tree
objc_build_string_object(tree ARG_UNUSED (str))270 objc_build_string_object (tree ARG_UNUSED (str))
271 {
272   return 0;
273 }
274 
275 tree
objc_get_class_reference(tree ARG_UNUSED (name))276 objc_get_class_reference (tree ARG_UNUSED (name))
277 {
278   return 0;
279 }
280 
281 bool
objc_detect_field_duplicates(bool ARG_UNUSED (check_superclasses_only))282 objc_detect_field_duplicates (bool ARG_UNUSED (check_superclasses_only))
283 {
284   return false;
285 }
286 
287 tree
objc_get_protocol_qualified_type(tree ARG_UNUSED (name),tree ARG_UNUSED (protos))288 objc_get_protocol_qualified_type (tree ARG_UNUSED (name),
289 				  tree ARG_UNUSED (protos))
290 {
291   return 0;
292 }
293 
294 int
objc_static_init_needed_p(void)295 objc_static_init_needed_p (void)
296 {
297   return 0;
298 }
299 
300 tree
objc_generate_static_init_call(tree ARG_UNUSED (ctors))301 objc_generate_static_init_call (tree ARG_UNUSED (ctors))
302 {
303   return 0;
304 }
305 
306 int
objc_is_public(tree ARG_UNUSED (expr),tree ARG_UNUSED (identifier))307 objc_is_public (tree ARG_UNUSED (expr), tree ARG_UNUSED (identifier))
308 {
309   return 1;
310 }
311 
312 tree
objc_get_class_ivars(tree ARG_UNUSED (name))313 objc_get_class_ivars (tree ARG_UNUSED (name))
314 {
315   return 0;
316 }
317 
318 void
objc_add_property_declaration(location_t ARG_UNUSED (location),tree ARG_UNUSED (decl),vec<property_attribute_info * > &)319 objc_add_property_declaration (location_t ARG_UNUSED (location),
320 			       tree ARG_UNUSED (decl),
321 			       vec<property_attribute_info *>&
322 			       /*prop_attr_list*/)
323 {
324 }
325 
326 bool
objc_is_property_ref(tree ARG_UNUSED (node))327 objc_is_property_ref (tree ARG_UNUSED (node))
328 {
329   return 0;
330 }
331 
332 bool
objc_non_constant_expr_p(tree)333 objc_non_constant_expr_p (tree)
334 {
335   return 0;
336 }
337 
338 tree
objc_maybe_build_component_ref(tree ARG_UNUSED (datum),tree ARG_UNUSED (component))339 objc_maybe_build_component_ref (tree ARG_UNUSED (datum), tree ARG_UNUSED (component))
340 {
341   return 0;
342 }
343 
344 tree
objc_build_class_component_ref(tree ARG_UNUSED (datum),tree ARG_UNUSED (component))345 objc_build_class_component_ref (tree ARG_UNUSED (datum), tree ARG_UNUSED (component))
346 {
347   return 0;
348 }
349 
350 tree
objc_maybe_build_modify_expr(tree ARG_UNUSED (lhs),tree ARG_UNUSED (rhs))351 objc_maybe_build_modify_expr (tree ARG_UNUSED (lhs), tree ARG_UNUSED (rhs))
352 {
353   return 0;
354 }
355 
356 tree
objc_build_incr_expr_for_property_ref(location_t ARG_UNUSED (location),enum tree_code ARG_UNUSED (code),tree ARG_UNUSED (argument),tree ARG_UNUSED (increment))357 objc_build_incr_expr_for_property_ref (location_t ARG_UNUSED (location),
358 				       enum tree_code ARG_UNUSED (code),
359 				       tree ARG_UNUSED (argument),
360 				       tree ARG_UNUSED (increment))
361 {
362   return 0;
363 }
364 
365 void
objc_add_synthesize_declaration(location_t ARG_UNUSED (start_locus),tree ARG_UNUSED (property_and_ivar_list))366 objc_add_synthesize_declaration (location_t ARG_UNUSED (start_locus),
367 				 tree ARG_UNUSED (property_and_ivar_list))
368 {
369 }
370 
371 void
objc_add_dynamic_declaration(location_t ARG_UNUSED (start_locus),tree ARG_UNUSED (property_list))372 objc_add_dynamic_declaration (location_t ARG_UNUSED (start_locus),
373 			      tree ARG_UNUSED (property_list))
374 {
375 }
376 
377 const char *
objc_maybe_printable_name(tree ARG_UNUSED (decl),int ARG_UNUSED (v))378 objc_maybe_printable_name (tree ARG_UNUSED (decl),
379 			   int ARG_UNUSED (v))
380 {
381   return NULL;
382 }
383 
384 tree
objc_build_throw_stmt(location_t ARG_UNUSED (loc),tree ARG_UNUSED (expr))385 objc_build_throw_stmt (location_t ARG_UNUSED (loc), tree ARG_UNUSED (expr))
386 {
387   return 0;
388 }
389 
390 tree
objc_build_synchronized(location_t ARG_UNUSED (start_locus),tree ARG_UNUSED (mutex),tree ARG_UNUSED (body))391 objc_build_synchronized (location_t ARG_UNUSED (start_locus),
392 			 tree ARG_UNUSED (mutex), tree ARG_UNUSED (body))
393 {
394   return 0;
395 }
396 
397 void
objc_begin_try_stmt(location_t ARG_UNUSED (try_locus),tree ARG_UNUSED (body))398 objc_begin_try_stmt (location_t ARG_UNUSED (try_locus), tree ARG_UNUSED (body))
399 {
400 }
401 
402 void
objc_begin_catch_clause(tree ARG_UNUSED (decl))403 objc_begin_catch_clause (tree ARG_UNUSED (decl))
404 {
405 }
406 
407 void
objc_finish_catch_clause(void)408 objc_finish_catch_clause (void)
409 {
410 }
411 
412 void
objc_build_finally_clause(location_t ARG_UNUSED (finally_locus),tree ARG_UNUSED (body))413 objc_build_finally_clause (location_t ARG_UNUSED (finally_locus),
414 			   tree ARG_UNUSED (body))
415 {
416 }
417 
418 tree
objc_finish_try_stmt(void)419 objc_finish_try_stmt (void)
420 {
421   return 0;
422 }
423 
424 tree
objc_generate_write_barrier(tree ARG_UNUSED (lhs),enum tree_code ARG_UNUSED (modifycode),tree ARG_UNUSED (rhs))425 objc_generate_write_barrier (tree ARG_UNUSED (lhs),
426 			     enum tree_code ARG_UNUSED (modifycode),
427 			     tree ARG_UNUSED (rhs))
428 {
429   return 0;
430 }
431 
432 void
objc_finish_foreach_loop(location_t ARG_UNUSED (location),tree ARG_UNUSED (object_expression),tree ARG_UNUSED (collection_expression),tree ARG_UNUSED (for_body),tree ARG_UNUSED (break_label),tree ARG_UNUSED (continue_label))433 objc_finish_foreach_loop (location_t ARG_UNUSED (location), tree ARG_UNUSED (object_expression),
434 			  tree ARG_UNUSED (collection_expression), tree ARG_UNUSED (for_body),
435 			  tree ARG_UNUSED (break_label), tree ARG_UNUSED (continue_label))
436 {
437   return;
438 }
439 
440 void
objc_write_global_declarations(void)441 objc_write_global_declarations (void)
442 {
443 }
444 
445 bool
objc_string_ref_type_p(tree ARG_UNUSED (strp))446 objc_string_ref_type_p (tree ARG_UNUSED (strp))
447 {
448    return false;
449 }
450 
451 void
objc_check_format_arg(tree ARG_UNUSED (format_arg),tree ARG_UNUSED (args_list))452 objc_check_format_arg (tree ARG_UNUSED (format_arg),
453 		       tree ARG_UNUSED (args_list))
454 {
455 }
456 
457 void
objc_finish_function(void)458 objc_finish_function (void)
459 {
460 }
461 
462 void
objc_maybe_warn_exceptions(location_t ARG_UNUSED (loc))463 objc_maybe_warn_exceptions (location_t ARG_UNUSED (loc))
464 {
465 }
466 
objc_prop_attr_kind_for_rid(enum rid)467 enum objc_property_attribute_kind objc_prop_attr_kind_for_rid (enum rid)
468 {
469   return OBJC_PROPERTY_ATTR_UNKNOWN;
470 }
471