1 /** Copyright (C) 2015 Free Software Foundation, Inc.
2 This generated file meltrunsup-inc.cc is part of GCC.
4 [DON'T EDIT THIS GENERATED FILE]
6 GCC is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 3, or (at your option)
11 GCC is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
16 You should have received a copy of the GNU General Public License
17 along with GCC; see the file COPYING3. If not see
18 <http://www.gnu.org/licenses/>.
24 /* start of code generated by generate_runtypesupport_cod2ctype */
25 melt_ptr_t
melt_code_to_ctype (int code
)
30 /* #1: CTYPE_BASIC_BLOCK */
32 return MELT_PREDEF(CTYPE_BASIC_BLOCK
);
33 /* #2: CTYPE_BITMAP */
35 return MELT_PREDEF(CTYPE_BITMAP
);
36 /* #3: CTYPE_CSTRING */
37 case MELTBPAR_CSTRING
:
38 return MELT_PREDEF(CTYPE_CSTRING
);
39 /* #4: CTYPE_DOUBLE */
41 return MELT_PREDEF(CTYPE_DOUBLE
);
44 return MELT_PREDEF(CTYPE_EDGE
);
45 /* #6: CTYPE_GIMPLE */
47 return MELT_PREDEF(CTYPE_GIMPLE
);
48 /* #7: CTYPE_GIMPLE_SEQ */
49 case MELTBPAR_GIMPLESEQ
:
50 return MELT_PREDEF(CTYPE_GIMPLE_SEQ
);
53 return MELT_PREDEF(CTYPE_LONG
);
56 return MELT_PREDEF(CTYPE_LOOP
);
57 /* #10: CTYPE_RTVEC */
59 return MELT_PREDEF(CTYPE_RTVEC
);
62 return MELT_PREDEF(CTYPE_RTX
);
65 return MELT_PREDEF(CTYPE_TREE
);
66 /* #13: CTYPE_VALUE */
68 return MELT_PREDEF(CTYPE_VALUE
);
75 } /* end of generated melt_code_to_ctype */
79 /** start of code generated by generate_runtypesupport_mag2str **/
80 const char* melt_obmag_string (int i
)
82 #define MELT_MAG2STR_CACHEBUF 17
83 #define MELT_MAG2STR_MAGLEN 16
84 static char melt_cacheobmagbuf
[MELT_MAG2STR_CACHEBUF
][MELT_MAG2STR_MAGLEN
] ;
88 return "MeltObMag!0" ;
89 /*gtyctype #1 CTYPE_BASIC_BLOCK*/
90 case MELTOBMAG_BASICBLOCK
:
91 return "MELTOBMAG_BASICBLOCK";
92 case MELTOBMAG_MAPBASICBLOCKS
:
93 return "MELTOBMAG_MAPBASICBLOCKS";
95 /*gtyctype #2 CTYPE_BITMAP*/
96 case MELTOBMAG_BITMAP
:
97 return "MELTOBMAG_BITMAP";
98 case MELTOBMAG_MAPBITMAPS
:
99 return "MELTOBMAG_MAPBITMAPS";
101 /*gtyctype #3 CTYPE_CSTRING*/
102 /*runtypesupport_mag2str no boxed magic */
103 /*runtypesupport_mag2str no map magic */
105 /*gtyctype #4 CTYPE_DOUBLE*/
106 /*runtypesupport_mag2str no boxed magic */
107 /*runtypesupport_mag2str no map magic */
109 /*gtyctype #5 CTYPE_EDGE*/
111 return "MELTOBMAG_EDGE";
112 case MELTOBMAG_MAPEDGES
:
113 return "MELTOBMAG_MAPEDGES";
115 /*gtyctype #6 CTYPE_GIMPLE*/
116 case MELTOBMAG_GIMPLE
:
117 return "MELTOBMAG_GIMPLE";
118 case MELTOBMAG_MAPGIMPLES
:
119 return "MELTOBMAG_MAPGIMPLES";
121 /*gtyctype #7 CTYPE_GIMPLE_SEQ*/
122 case MELTOBMAG_GIMPLESEQ
:
123 return "MELTOBMAG_GIMPLESEQ";
124 case MELTOBMAG_MAPGIMPLESEQS
:
125 return "MELTOBMAG_MAPGIMPLESEQS";
127 /*gtyctype #8 CTYPE_LONG*/
128 /*runtypesupport_mag2str no boxed magic */
129 /*runtypesupport_mag2str no map magic */
131 /*gtyctype #9 CTYPE_LOOP*/
133 return "MELTOBMAG_LOOP";
134 case MELTOBMAG_MAPLOOPS
:
135 return "MELTOBMAG_MAPLOOPS";
137 /*gtyctype #10 CTYPE_RTVEC*/
138 case MELTOBMAG_RTVEC
:
139 return "MELTOBMAG_RTVEC";
140 case MELTOBMAG_MAPRTVECS
:
141 return "MELTOBMAG_MAPRTVECS";
143 /*gtyctype #11 CTYPE_RTX*/
145 return "MELTOBMAG_RTX";
146 case MELTOBMAG_MAPRTXS
:
147 return "MELTOBMAG_MAPRTXS";
149 /*gtyctype #12 CTYPE_TREE*/
151 return "MELTOBMAG_TREE";
152 case MELTOBMAG_MAPTREES
:
153 return "MELTOBMAG_MAPTREES";
155 /*gtyctype #13 CTYPE_VALUE*/
156 /*runtypesupport_mag2str no boxed magic */
157 /*runtypesupport_mag2str no map magic */
159 /*gtyctype #14 CTYPE_VOID*/
160 /*runtypesupport_mag2str no boxed magic */
161 /*runtypesupport_mag2str no map magic */
164 /*valdesc #1 VALDESC_BUCKETLONGS*/
165 case MELTOBMAG_BUCKETLONGS
:
166 return "MELTOBMAG_BUCKETLONGS";
168 /*valdesc #2 VALDESC_CLOSURE*/
169 case MELTOBMAG_CLOSURE
:
170 return "MELTOBMAG_CLOSURE";
172 /*valdesc #3 VALDESC_DECAY*/
173 case MELTOBMAG_DECAY
:
174 return "MELTOBMAG_DECAY";
176 /*valdesc #4 VALDESC_DOUBLE*/
177 case MELTOBMAG_DOUBLE
:
178 return "MELTOBMAG_DOUBLE";
180 /*valdesc #5 VALDESC_HOOK*/
182 return "MELTOBMAG_HOOK";
184 /*valdesc #6 VALDESC_INT*/
186 return "MELTOBMAG_INT";
188 /*valdesc #7 VALDESC_JSONOBJECT*/
189 case MELTOBMAG_JSONOBJECT
:
190 return "MELTOBMAG_JSONOBJECT";
192 /*valdesc #8 VALDESC_LIST*/
194 return "MELTOBMAG_LIST";
196 /*valdesc #9 VALDESC_MAPOBJECTS*/
197 case MELTOBMAG_MAPOBJECTS
:
198 return "MELTOBMAG_MAPOBJECTS";
200 /*valdesc #10 VALDESC_MAPSTRINGS*/
201 case MELTOBMAG_MAPSTRINGS
:
202 return "MELTOBMAG_MAPSTRINGS";
204 /*valdesc #11 VALDESC_MIXBIGINT*/
205 case MELTOBMAG_MIXBIGINT
:
206 return "MELTOBMAG_MIXBIGINT";
208 /*valdesc #12 VALDESC_MIXINT*/
209 case MELTOBMAG_MIXINT
:
210 return "MELTOBMAG_MIXINT";
212 /*valdesc #13 VALDESC_MIXLOC*/
213 case MELTOBMAG_MIXLOC
:
214 return "MELTOBMAG_MIXLOC";
216 /*valdesc #14 VALDESC_MULTIPLE*/
217 case MELTOBMAG_MULTIPLE
:
218 return "MELTOBMAG_MULTIPLE";
220 /*valdesc #15 VALDESC_OBJECT*/
221 case MELTOBMAG_OBJECT
:
222 return "MELTOBMAG_OBJECT";
224 /*valdesc #16 VALDESC_PAIR*/
226 return "MELTOBMAG_PAIR";
228 /*valdesc #17 VALDESC_REAL*/
230 return "MELTOBMAG_REAL";
232 /*valdesc #18 VALDESC_ROUTINE*/
233 case MELTOBMAG_ROUTINE
:
234 return "MELTOBMAG_ROUTINE";
236 /*valdesc #19 VALDESC_SPECIAL_DATA*/
237 case MELTOBMAG_SPECIAL_DATA
:
238 return "MELTOBMAG_SPECIAL_DATA";
240 /*valdesc #20 VALDESC_STRBUF*/
241 case MELTOBMAG_STRBUF
:
242 return "MELTOBMAG_STRBUF";
244 /*valdesc #21 VALDESC_STRING*/
245 case MELTOBMAG_STRING
:
246 return "MELTOBMAG_STRING";
249 int ix
= (i
& 0x3ffffff) % MELT_MAG2STR_CACHEBUF
;
250 snprintf (melt_cacheobmagbuf
[ix
], MELT_MAG2STR_MAGLEN
-1, "?MeltObjMag?%d", i
);
251 return melt_cacheobmagbuf
[ix
];
254 } /* end generated melt_obmag_string */
256 /** end of code generated by generate_runtypesupport_mag2str **/
259 /** generated by generate_runtypesupport_forwcopy_fun **/
261 /* cheney like forwarding generated function */
263 melt_forwarded_copy (melt_ptr_t p
)
265 /* header generated by generate_runtypesupport_forwcopy_fun */
268 gcc_assert (melt_is_young (p
));
269 gcc_assert (p
->u_discr
&& p
->u_discr
!= MELT_FORWARDED_DISCR
);
270 if (p
->u_discr
->meltobj_class
== MELT_FORWARDED_DISCR
)
273 (((struct meltforward_st
*) p
->u_discr
)->forward
))->meltobj_magic
;
275 mag
= p
->u_discr
->meltobj_magic
;
276 melt_forward_counter
++;
277 switch (mag
) /* end of generated header */
280 /* value descriptor forward copy for melt_forwarded_copy */
282 /*valdesc #1 VALDESC_BUCKETLONGS*/
283 case MELTOBMAG_BUCKETLONGS
:
285 struct meltbucketlongs_st
*src
= (struct meltbucketlongs_st
*) p
;
286 struct meltbucketlongs_st
*dst
= NULL
;
287 /* copy chunk from VALDESC_BUCKETLONGS in warmelt-base.melt */
288 // in file warmelt-base.melt line 2856
289 /* ggc_alloc_meltbucketlongs_st should be gengtype generated for VALDESC_BUCKETLONGS */
290 unsigned lnix
= src
->buckl_lenix
;
291 unsigned len
= melt_primtab
[lnix
];
294 size_t sz
= len
*sizeof (struct melt_bucketlongentry_st
)
295 + offsetof(struct meltbucketlongs_st
, buckl_entab
);
296 gcc_assert (lnix
> 0);
297 gcc_assert (len
> 0);
298 dst
= /* Don't need a cleared allocation! */
299 ggc_alloc_meltbucketlongs_st (sz
);
300 melt_forwarded_copy_byte_count
+= sz
;
301 dst
->discr
= src
->discr
;
302 dst
->buckl_lenix
= src
->buckl_lenix
;
303 dst
->buckl_aux
= src
->buckl_aux
;
304 dst
->buckl_xnum
= src
->buckl_xnum
;
305 ucnt
= dst
->buckl_ucount
= src
->buckl_ucount
;
309 dst
->buckl_entab
[ix
] = src
->buckl_entab
[ix
];
314 dst
->buckl_entab
[ix
].ebl_at
= 0L;
315 dst
->buckl_entab
[ix
].ebl_va
= NULL
;
317 /* end copy chunk VALDESC_BUCKETLONGS */
319 n
= (melt_ptr_t
) dst
;
323 /*valdesc #2 VALDESC_CLOSURE*/
324 case MELTOBMAG_CLOSURE
:
326 struct meltclosure_st
*src
= (struct meltclosure_st
*) p
;
327 struct meltclosure_st
*dst
= NULL
;
328 /* copy VALDESC_CLOSURE in warmelt-base.melt */
329 // in file warmelt-base.melt line 2606
330 /* ggc_alloc_meltclosure_st should be gengtype generated for VALDESC_CLOSURE */
331 #if GCCPLUGIN_VERSION >= 5000 /* GCC 5.0 */
332 #ifndef ggc_alloc_meltclosure_st
333 #define ggc_alloc_meltclosure_st(SIZE) ((struct meltclosure_st *)(ggc_internal_alloc (SIZE)))
334 #endif /* ggc_alloc_meltclosure_st */
336 #ifndef ggc_alloc_meltclosure_st
337 #define ggc_alloc_meltclosure_st(SIZE) ((struct meltclosure_st *)(ggc_internal_alloc_stat (SIZE MEM_STAT_INFO)))
338 #endif /* ggc_alloc_meltclosure_st */
339 #endif /* GCC 4.9 or 5.0 */
340 int nbv
= (int) src
->nbval
;
341 size_t sz
= nbv
*sizeof(void*) + offsetof(struct meltclosure_st
, tabval
);
343 /* Don't need a cleared allocation! */
344 ggc_alloc_meltclosure_st (sz
);
345 melt_forwarded_copy_byte_count
+= sz
;
346 dst
->discr
= src
->discr
;
347 dst
->rout
= src
->rout
;
348 dst
->nbval
= (unsigned) nbv
;
352 dst
->tabval
[ix
] = src
->tabval
[ix
];
354 n
= (melt_ptr_t
) dst
;
358 /*valdesc #3 VALDESC_DECAY*/
359 case MELTOBMAG_DECAY
:
361 struct meltdecay_st
*src
= (struct meltdecay_st
*) p
;
362 struct meltdecay_st
*dst
= NULL
;
363 /* from VALDESC_DECAY in warmelt-base.melt */
364 // in file warmelt-base.melt line 2484
365 /* ggc_alloc_meltdecay_st should be gengtype generated for VALDESC_DECAY */
366 #if GCCPLUGIN_VERSION >= 5000 /* GCC 5.0 */
367 #ifndef ggc_alloc_meltdecay_st
368 #define ggc_alloc_meltdecay_st() ((struct meltdecay_st *)(ggc_internal_alloc (sizeof (struct meltdecay_st))))
369 #endif /* ggc_alloc_meltdecay_st */
371 #ifndef ggc_alloc_meltdecay_st
372 #define ggc_alloc_meltdecay_st() ((struct meltdecay_st *)(ggc_internal_alloc_stat (sizeof (struct meltdecay_st) MEM_STAT_INFO)))
373 #endif /* ggc_alloc_meltdecay_st */
374 #endif /* GCC not 5.0 */
375 dst
= ggc_alloc_meltdecay_st ();
377 melt_forwarded_copy_byte_count
+= sizeof(*dst
);
379 n
= (melt_ptr_t
) dst
;
383 /*valdesc #4 VALDESC_DOUBLE*/
384 case MELTOBMAG_DOUBLE
:
386 struct meltdouble_st
*src
= (struct meltdouble_st
*) p
;
387 struct meltdouble_st
*dst
= NULL
;
388 /* from VALDESC_DOUBLE in warmelt-base.melt */
389 /* ggc_alloc_meltdouble_st should be gengtype generated for VALDESC_DOUBLE */
390 #if GCCPLUGIN_VERSION >= 5000 /* GCC 5.0 */
391 #ifndef ggc_alloc_meltdouble_st
392 #define ggc_alloc_meltdouble_st() ((struct meltdouble_st *)(ggc_internal_alloc (sizeof (struct meltdouble_st))))
395 #ifndef ggc_alloc_meltdouble_st
396 #define ggc_alloc_meltdouble_st() ((struct meltdouble_st *)(ggc_internal_alloc_stat (sizeof (struct meltdouble_st) MEM_STAT_INFO)))
398 #endif /* GCC not 5.0 */
400 /* Don't need a cleared allocation. */
401 ggc_alloc_meltdouble_st ();
402 melt_forwarded_copy_byte_count
+= sizeof(*dst
);
405 n
= (melt_ptr_t
) dst
;
409 /*valdesc #5 VALDESC_HOOK*/
412 struct melthook_st
*src
= (struct melthook_st
*) p
;
413 struct melthook_st
*dst
= NULL
;
414 /* from VALDESC_HOOK in warmelt-base.melt */
415 // in file warmelt-base.melt line 2777
416 /* ggc_alloc_melthook_st should be gengtype generated for VALDESC_HOOK */
417 #if GCCPLUGIN_VERSION >= 5000 /* GCC 5.0 */
418 #ifndef ggc_alloc_melthook_st
419 #define ggc_alloc_melthook_st(SIZE) ((struct melthook_st *)(ggc_internal_alloc (SIZE)))
422 #ifndef ggc_alloc_melthook_st
423 #define ggc_alloc_melthook_st(SIZE) ((struct melthook_st *)(ggc_internal_alloc_stat (SIZE MEM_STAT_INFO)))
425 #endif /* GCC not 5.0 */
426 int nbv
= (int) src
->nbval
;
428 size_t sz
= nbv
*sizeof(void*) + offsetof(struct melthook_st
, tabval
);
430 /* Don't need a cleared allocation! */
431 ggc_alloc_melthook_st (sz
);
432 melt_forwarded_copy_byte_count
+= sz
;
433 dst
->discr
= src
->discr
;
434 strncpy (dst
->hookname
, src
->hookname
, MELT_HOOKNAME_LEN
);
435 dst
->hookname
[MELT_HOOKNAME_LEN
- 1] = 0;
436 dst
->nbval
= (unsigned) nbv
;
437 dst
->hookad
= src
->hookad
;
441 dst
->tabval
[ix
] = src
->tabval
[ix
];
442 dst
->hookdata
= src
->hookdata
;
444 n
= (melt_ptr_t
) dst
;
448 /*valdesc #6 VALDESC_INT*/
451 struct meltint_st
*src
= (struct meltint_st
*) p
;
452 struct meltint_st
*dst
= NULL
;
453 /* from VALDESC_INT */
454 /* ggc_alloc_meltint_st should be gengtype generated for VALDESC_INT */
455 #if GCCPLUGIN_VERSION >= 5000 /* GCC 5.0 */
456 #ifndef ggc_alloc_meltint_st
457 #define ggc_alloc_meltint_st() ((struct meltint_st *)(ggc_internal_alloc (sizeof (struct meltint_st))))
460 #ifndef ggc_alloc_meltint_st
461 #define ggc_alloc_meltint_st() ((struct meltint_st *)(ggc_internal_alloc_stat (sizeof (struct meltint_st) MEM_STAT_INFO)))
463 #endif /* GCC not 5.0 */
465 /* Don't need a cleared allocation. */
466 ggc_alloc_meltint_st ();
467 melt_forwarded_copy_byte_count
+= sizeof(*dst
);
470 n
= (melt_ptr_t
) dst
;
474 /*valdesc #7 VALDESC_JSONOBJECT*/
475 case MELTOBMAG_JSONOBJECT
:
477 struct meltjsonobject_st
*src
= (struct meltjsonobject_st
*) p
;
478 struct meltjsonobject_st
*dst
= NULL
;
479 /* copy chunk from VALDESC_JSONOBJECT in warmelt-base.melt */
480 // in file warmelt-base.melt line 3025
481 /* ggc_alloc_meltjsonobject_st should be gengtype generated for VALDESC_JSONOBJECT */
482 unsigned srcsize
= src
->jsob_size
;
483 size_t sz
= srcsize
* sizeof(melt_jsonobentry_st
)
484 + offsetof(struct meltjsonobject_st
, jsob_entab
);
485 dst
= /* Don't need a cleared allocation! */
486 ggc_alloc_meltjsonobject_st (sz
);
487 melt_forwarded_copy_byte_count
+= sz
;
488 dst
->discr
= src
->discr
;
489 dst
->jsob_aux
= src
->jsob_aux
;
490 dst
->jsob_size
= srcsize
;
491 for (unsigned ix
= 0;
494 dst
->jsob_entab
[ix
] = src
->jsob_entab
[ix
];
495 /* end copy chunk VALDESC_JSONOBJECT */
497 n
= (melt_ptr_t
) dst
;
501 /*valdesc #8 VALDESC_LIST*/
504 struct meltlist_st
*src
= (struct meltlist_st
*) p
;
505 struct meltlist_st
*dst
= NULL
;
506 /* copy chunk from VALDESC_LIST */
507 // in file warmelt-base.melt line 3250
508 /* ggc_alloc_meltlist_st should be gengtype generated for VALDESC_LIST */
509 #if GCCPLUGIN_VERSION >= 5000 /* GCC 5.0 */
510 #ifndef ggc_alloc_meltlist_st
511 #define ggc_alloc_meltlist_st() ((struct meltlist_st *)(ggc_internal_alloc (sizeof (struct meltlist_st))))
514 #ifndef ggc_alloc_meltlist_st
515 #define ggc_alloc_meltlist_st() ((struct meltlist_st *)(ggc_internal_alloc_stat (sizeof (struct meltlist_st) MEM_STAT_INFO)))
517 #endif /* GCC not 5.0 */
519 /* Don't need a cleared allocation! */
520 ggc_alloc_meltlist_st ();
522 melt_forwarded_copy_byte_count
+= sizeof(*dst
);
523 /* end chunk from VALDESC_LIST */
525 n
= (melt_ptr_t
) dst
;
529 /*valdesc #9 VALDESC_MAPOBJECTS*/
530 case MELTOBMAG_MAPOBJECTS
:
532 struct meltmapobjects_st
*src
= (struct meltmapobjects_st
*) p
;
533 struct meltmapobjects_st
*dst
= NULL
;
534 /* copy VALDESC_MAPOBJECTS in warmelt-base.melt */
535 // in file warmelt-base.melt line 2235
536 /* ggc_alloc_meltmapobjects_st should be gengtype generated for VALDESC_MAPOBJECTS */
537 #if GCCPLUGIN_VERSION >= 5000 /* GCC 5.0 */
538 #ifndef ggc_alloc_meltmapobjects_st
539 #define ggc_alloc_meltmapobjects_st() ((struct meltmapobjects_st *)(ggc_internal_alloc(sizeof(struct meltmapobjects_st))))
540 #endif /* ggc_alloc_meltmapobjects_st */
541 #ifndef ggc_alloc_vec_entryobjectsmelt_st
542 #define ggc_alloc_vec_entryobjectsmelt_st(N) ((struct entryobjectsmelt_st *) (ggc_internal_alloc(sizeof(struct entryobjectsmelt_st)*(N))))
543 #endif /* ggc_alloc_vec_entryobjectsmelt_st */
544 #ifndef ggc_alloc_cleared_vec_entryobjectsmelt_st
545 #define ggc_alloc_cleared_vec_entryobjectsmelt_st(N) ((struct entryobjectsmelt_st *) (ggc_internal_cleared_alloc(sizeof(struct entryobjectsmelt_st)*(N))))
546 #endif /* ggc_alloc_cleared_vec_entryobjectsmelt_st */
548 #ifndef ggc_alloc_meltmapobjects_st
549 #define ggc_alloc_meltmapobjects_st() ((struct meltmapobjects_st *)(ggc_internal_alloc_stat (sizeof (struct meltmapobjects_st) MEM_STAT_INFO)))
550 #endif /* ggc_alloc_meltmapobjects_st */
551 #ifndef ggc_alloc_vec_entryobjectsmelt_st
552 #define ggc_alloc_vec_entryobjectsmelt_st(N) ((struct entryobjectsmelt_st *) (ggc_internal_vec_alloc_stat (sizeof (struct entryobjectsmelt_st), N MEM_STAT_INFO)))
553 #endif /* ggc_alloc_vec_entryobjectsmelt_st */
554 #ifndef ggc_alloc_cleared_vec_entryobjectsmelt_st
555 #define ggc_alloc_cleared_vec_entryobjectsmelt_st(n) ((struct entryobjectsmelt_st *)(ggc_internal_cleared_vec_alloc_stat (sizeof (struct entryobjectsmelt_st), n MEM_STAT_INFO)))
556 #endif /* ggc_alloc_cleared_vec_entryobjectsmelt_st */
558 int siz
= melt_primtab
[src
->lenix
];
561 /* copychunk mapobject on't need a cleared allocation. */
562 ggc_alloc_meltmapobjects_st ();
563 dst
->discr
= src
->discr
;
564 dst
->count
= src
->count
;
565 dst
->lenix
= src
->lenix
;
566 dst
->meltmap_hash
= src
->meltmap_hash
;
567 dst
->meltmap_aux
= src
->meltmap_aux
;
569 if (siz
> 0 && src
->entab
)
571 /* Don't need a cleared allocation. */
572 dst
->entab
= ggc_alloc_vec_entryobjectsmelt_st (siz
);
573 memcpy (dst
->entab
, src
->entab
, siz
* sizeof (dst
->entab
[0]));
574 sz
+= siz
* sizeof(dst
->entab
[0]);
578 melt_forwarded_copy_byte_count
+= sz
;
580 n
= (melt_ptr_t
) dst
;
584 /*valdesc #10 VALDESC_MAPSTRINGS*/
585 case MELTOBMAG_MAPSTRINGS
:
587 struct meltmapstrings_st
*src
= (struct meltmapstrings_st
*) p
;
588 struct meltmapstrings_st
*dst
= NULL
;
589 /* copy VALDESC_MAPSTRINGS in warmelt-base.melt */
590 // in file warmelt-base.melt line 2360
591 /* ggc_alloc_meltmapstrings_st should be gengtype generated for VALDESC_MAPSTRINGS */
592 #if GCCPLUGIN_VERSION >= 5000 /* GCC 5.0 */
593 #ifndef ggc_alloc_meltmapstrings_st
594 #define ggc_alloc_meltmapstrings_st() ((struct meltmapstrings_st *)(ggc_internal_alloc (sizeof (struct meltmapstrings_st))))
595 #endif /* ggc_alloc_meltmapstrings_st */
596 #ifndef ggc_alloc_vec_entrystringsmelt_st
597 #define ggc_alloc_vec_entrystringsmelt_st(N) ((struct entrystringsmelt_st *)(ggc_internal_alloc (sizeof (struct entrystringsmelt_st)*(N))))
598 #endif /* ggc_alloc_vec_entrystringsmelt_st */
599 #ifndef ggc_alloc_cleared_vec_entrystringsmelt_st
600 #define ggc_alloc_cleared_vec_entrystringsmelt_st(N) ((struct entrystringsmelt_st *)(ggc_internal_cleared_alloc (sizeof (struct entrystringsmelt_st)*(N))))
601 #endif /* ggc_alloc_cleared_vec_entrystringsmelt_st */
603 #ifndef ggc_alloc_meltmapstrings_st
604 #define ggc_alloc_meltmapstrings_st() ((struct meltmapstrings_st *)(ggc_internal_alloc_stat (sizeof (struct meltmapstrings_st) MEM_STAT_INFO)))
605 #endif /* ggc_alloc_meltmapstrings_st */
606 #ifndef ggc_alloc_vec_entrystringsmelt_st
607 #define ggc_alloc_vec_entrystringsmelt_st(n) ((struct entrystringsmelt_st *)(ggc_internal_vec_alloc_stat (sizeof (struct entrystringsmelt_st), n MEM_STAT_INFO)))
608 #endif /* ggc_alloc_vec_entrystringsmelt_st */
609 #ifndef ggc_alloc_cleared_vec_entrystringsmelt_st
610 #define ggc_alloc_cleared_vec_entrystringsmelt_st(n) ((struct entrystringsmelt_st *)(ggc_internal_cleared_vec_alloc_stat (sizeof (struct entrystringsmelt_st), n MEM_STAT_INFO)))
611 #endif /* ggc_alloc_cleared_vec_entrystringsmelt_st */
612 #endif /* GCC 5.0 or 4.9 */
613 int siz
= melt_primtab
[src
->lenix
];
616 /* copychunk mapstring on't need a cleared allocation. */
617 ggc_alloc_meltmapstrings_st ();
619 dst
->discr
= src
->discr
;
620 dst
->count
= src
->count
;
621 dst
->lenix
= src
->lenix
;
622 dst
->meltmap_aux
= src
->meltmap_aux
;
623 dst
->meltmap_hash
= src
->meltmap_hash
;
624 if (siz
> 0 && src
->entab
)
626 /* Don't need a cleared allocation. */
627 dst
->entab
= ggc_alloc_vec_entrystringsmelt_st (siz
);
628 memcpy (dst
->entab
, src
->entab
, siz
* sizeof (dst
->entab
[0]));
629 sz
+= siz
* sizeof(dst
->entab
[0]);
633 melt_forwarded_copy_byte_count
+= sz
;
635 n
= (melt_ptr_t
) dst
;
639 /*valdesc #11 VALDESC_MIXBIGINT*/
640 case MELTOBMAG_MIXBIGINT
:
642 struct meltmixbigint_st
*src
= (struct meltmixbigint_st
*) p
;
643 struct meltmixbigint_st
*dst
= NULL
;
644 /* from VALDESC_MIXBIGINT in warmelt-base.melt */
645 // in file warmelt-base.melt line 3470
646 /* ggc_alloc_meltmixbigint_st should be gengtype generated for VALDESC_MIXBIGINT */
647 #if GCCPLUGIN_VERSION >= 5000 /* GCC 5.0 */
648 #ifndef ggc_alloc_meltmixbigint_st
649 #define ggc_alloc_meltmixbigint_st(SIZE) ((struct meltmixbigint_st *)(ggc_internal_alloc (SIZE)))
652 #ifndef ggc_alloc_meltmixbigint_st
653 #define ggc_alloc_meltmixbigint_st(SIZE) ((struct meltmixbigint_st *)(ggc_internal_alloc_stat (SIZE MEM_STAT_INFO)))
655 #endif /* GCC not 5.0 */
656 unsigned blen
= src
->biglen
;
657 size_t sz
= blen
*sizeof(long) + offsetof(struct meltmixbigint_st
, tabig
);
659 /* Don't need a cleared allocation. */
660 ggc_alloc_meltmixbigint_st (sz
);
661 dst
->discr
= src
->discr
;
662 dst
->ptrval
= src
->ptrval
;
663 dst
->negative
= src
->negative
;
665 memcpy (dst
->tabig
, src
->tabig
, blen
*sizeof(dst
->tabig
[0]));
666 melt_forwarded_copy_byte_count
+= sz
;
668 n
= (melt_ptr_t
) dst
;
672 /*valdesc #12 VALDESC_MIXINT*/
673 case MELTOBMAG_MIXINT
:
675 struct meltmixint_st
*src
= (struct meltmixint_st
*) p
;
676 struct meltmixint_st
*dst
= NULL
;
677 /* from VALDESC_MIXINT in warmelt-base.melt */
678 // in file warmelt-base.melt line 3388
679 /* ggc_alloc_meltmixint_st should be gengtype generated for VALDESC_MIXINT */
680 #if GCCPLUGIN_VERSION >= 5000 /* GCC 5.0 */
681 #ifndef ggc_alloc_meltmixint_st
682 #define ggc_alloc_meltmixint_st() ((struct meltmixint_st *)(ggc_internal_alloc (sizeof (struct meltmixint_st))))
685 #ifndef ggc_alloc_meltmixint_st
686 #define ggc_alloc_meltmixint_st() ((struct meltmixint_st *)(ggc_internal_alloc_stat (sizeof (struct meltmixint_st) MEM_STAT_INFO)))
688 #endif /* GCC not 5.0 */
690 /* Don't need a cleared allocation. */
691 ggc_alloc_meltmixint_st ();
692 melt_forwarded_copy_byte_count
+= sizeof(*dst
);
695 n
= (melt_ptr_t
) dst
;
699 /*valdesc #13 VALDESC_MIXLOC*/
700 case MELTOBMAG_MIXLOC
:
702 struct meltmixloc_st
*src
= (struct meltmixloc_st
*) p
;
703 struct meltmixloc_st
*dst
= NULL
;
704 /* from VALDESC_MIXLOC in warmelt-base.melt */
705 // in file warmelt-base.melt line 3426
706 /* ggc_alloc_meltmixloc_st should be gengtype generated for VALDESC_MIXLOC */
707 #if GCCPLUGIN_VERSION >= 5000 /* GCC 5.0 */
708 #ifndef ggc_alloc_meltmixloc_st
709 #define ggc_alloc_meltmixloc_st() ((struct meltmixloc_st *)(ggc_internal_alloc (sizeof (struct meltmixloc_st))))
712 #ifndef ggc_alloc_meltmixloc_st
713 #define ggc_alloc_meltmixloc_st() ((struct meltmixloc_st *)(ggc_internal_alloc_stat (sizeof (struct meltmixloc_st) MEM_STAT_INFO)))
715 #endif /* GCC not 5.0 */
717 /* Don't need a cleared allocation. */
718 ggc_alloc_meltmixloc_st ();
720 melt_forwarded_copy_byte_count
+= sizeof(*dst
);
722 n
= (melt_ptr_t
) dst
;
726 /*valdesc #14 VALDESC_MULTIPLE*/
727 case MELTOBMAG_MULTIPLE
:
729 struct meltmultiple_st
*src
= (struct meltmultiple_st
*) p
;
730 struct meltmultiple_st
*dst
= NULL
;
731 /* copy chunk from VALDESC_MULTIPLE in warmelt-base.melt */
732 // in file warmelt-base.melt line 2532
733 /* ggc_alloc_meltmultiple_st should be gengtype generated for VALDESC_MULTIPLE */
734 #if GCCPLUGIN_VERSION >= 5000 /* GCC 5.0 */
735 #ifndef ggc_alloc_meltmultiple_st
736 #define ggc_alloc_meltmultiple_st(SIZE) ((struct meltmultiple_st *)(ggc_internal_alloc(SIZE)))
737 #endif /* ggc_alloc_meltmultiple_st */
739 #ifndef ggc_alloc_meltmultiple_st
740 #define ggc_alloc_meltmultiple_st(SIZE) ((struct meltmultiple_st *)(ggc_internal_alloc_stat (SIZE MEM_STAT_INFO)))
741 #endif /* ggc_alloc_meltmultiple_st */
742 #endif /* GCC not 5.0 */
743 int nbv
= (int) src
->nbval
;
744 size_t sz
= nbv
*sizeof(void*) + offsetof(struct meltmultiple_st
, tabval
);
746 /* Don't need a cleared allocation! */
747 ggc_alloc_meltmultiple_st (sz
);
748 melt_forwarded_copy_byte_count
+= sz
;
749 /* we cannot copy the whole src, because MELT_FLEXIBLE_DIM might be
750 1 and nbval could be 0 */
751 dst
->discr
= src
->discr
;
752 dst
->nbval
= src
->nbval
;
756 dst
->tabval
[ix
] = src
->tabval
[ix
];
757 /* end copy chunk from VALDESC_MULTIPLE */
759 n
= (melt_ptr_t
) dst
;
763 /*valdesc #15 VALDESC_OBJECT*/
764 case MELTOBMAG_OBJECT
:
766 struct meltobject_st
*src
= (struct meltobject_st
*) p
;
767 struct meltobject_st
*dst
= NULL
;
768 /* from VALDESC_OBJECT file warmelt-base.melt */
769 // in file warmelt-base.melt line 2101
770 /* ggc_alloc_meltobject_st should be gengtype generated for VALDESC_OBJECT */
771 #if GCCPLUGIN_VERSION >= 5000 /* GCC 5.0 */
772 #ifndef ggc_alloc_meltobject_st
773 #define ggc_alloc_meltobject_st(SIZE) ((struct meltobject_st *)(ggc_internal_alloc (SIZE)))
774 #endif /* ggc_alloc_meltobject_st */
775 #else /* GCC 4.9 and before */
776 #ifndef ggc_alloc_meltobject_st
777 #define ggc_alloc_meltobject_st(SIZE) ((struct meltobject_st *)(ggc_internal_alloc_stat (SIZE MEM_STAT_INFO)))
778 #endif /* ggc_alloc_meltobject_st */
779 #endif /* GCC 4.9 or GCC 5.0 */
782 int oblen
= (int) (src
->obj_len
);
784 /* We don't need to clear at allocation, since the object is
785 explicitly filled here! */
786 sz
= oblen
*sizeof(void*)
787 + offsetof(struct meltobject_st
, obj_vartab
);
788 dst
= ggc_alloc_meltobject_st (sz
);
789 melt_forwarded_copy_byte_count
+= sz
;
790 /* we cannot copy the whole src, because MELT_FLEXIBLE_DIM might be 1 */
791 dst
->meltobj_class
= src
->meltobj_class
;
792 dst
->obj_hash
= src
->obj_hash
;
793 dst
->obj_num
= src
->obj_num
;
794 dst
->obj_len
= oblen
;
798 dst
->obj_vartab
[ix
] = src
->obj_vartab
[ix
];
800 /* for low level debugging with gdb, we may want to catch some copy operations */
801 if (melt_alptr_1
&& (void*) src
== melt_alptr_1
)
802 melt_break_alptr_1 ("copyobj src=alptr1");
803 if (melt_alptr_2
&& (void*) src
== melt_alptr_2
)
804 melt_break_alptr_2 ("copyobj src=alptr2");
805 if (src
->obj_hash
== melt_objhash_1
)
806 melt_break_objhash_1("copyobj src with objhash1");
807 if (src
->obj_hash
== melt_objhash_2
)
808 melt_break_objhash_2("copyobj src with objhash2");
809 #endif /* ENABLE_CHECKING */
811 n
= (melt_ptr_t
) dst
;
815 /*valdesc #16 VALDESC_PAIR*/
818 struct meltpair_st
*src
= (struct meltpair_st
*) p
;
819 struct meltpair_st
*dst
= NULL
;
820 /* copy VALDESC_PAIR in warmelt-base.melt */
821 // in file warmelt-base.melt line 3207
822 /* ggc_alloc_meltpair_st should be gengtype gengtype for VALDESC_PAIR */
823 #if GCCPLUGIN_VERSION >= 5000 /* GCC 5.0 */
824 #ifndef ggc_alloc_meltpair_st
825 #define ggc_alloc_meltpair_st() ((struct meltpair_st *)(ggc_internal_alloc (sizeof (struct meltpair_st))))
828 #ifndef ggc_alloc_meltpair_st
829 #define ggc_alloc_meltpair_st() ((struct meltpair_st *)(ggc_internal_alloc_stat (sizeof (struct meltpair_st) MEM_STAT_INFO)))
831 #endif /* GCC not 5.0 */
832 dst
= /* Don't need a cleared allocation. */
833 ggc_alloc_meltpair_st ();
835 melt_forwarded_copy_byte_count
+= sizeof(*dst
);
837 n
= (melt_ptr_t
) dst
;
841 /*valdesc #17 VALDESC_REAL*/
844 struct meltreal_st
*src
= (struct meltreal_st
*) p
;
845 struct meltreal_st
*dst
= NULL
;
846 /* from VALDESC_REAL in warmelt-base.melt */
847 // in file warmelt-base.melt line 3513
848 /* ggc_alloc_meltreal_st should be gengtype generated for VALDESC_REAL */
849 #if GCCPLUGIN_VERSION >= 5000 /* GCC 5.0 */
850 #ifndef ggc_alloc_meltreal_st
851 #define ggc_alloc_meltreal_st() ((struct meltreal_st *)(ggc_internal_alloc (sizeof (struct meltreal_st))))
854 #ifndef ggc_alloc_meltreal_st
855 #define ggc_alloc_meltreal_st() ((struct meltreal_st *)(ggc_internal_alloc_stat (sizeof (struct meltreal_st) MEM_STAT_INFO)))
857 #endif /* GCC not 5.0 */
859 /* Don't need a cleared allocation. */
860 ggc_alloc_meltreal_st ();
861 melt_forwarded_copy_byte_count
+= sizeof(*dst
);
864 n
= (melt_ptr_t
) dst
;
868 /*valdesc #18 VALDESC_ROUTINE*/
869 case MELTOBMAG_ROUTINE
:
871 struct meltroutine_st
*src
= (struct meltroutine_st
*) p
;
872 struct meltroutine_st
*dst
= NULL
;
873 /* from VALDESC_ROUTINE in warmelt-base.melt */
874 // in file warmelt-base.melt line 2697
875 /* ggc_alloc_meltroutine_st should be gengtype generated for VALDESC_ROUTINE */
876 #if GCCPLUGIN_VERSION >= 5000 /* GCC 5.0 */
877 #ifndef ggc_alloc_meltroutine_st
878 #define ggc_alloc_meltroutine_st(SIZE) ((struct meltroutine_st *)(ggc_internal_alloc (SIZE)))
881 #ifndef ggc_alloc_meltroutine_st
882 #define ggc_alloc_meltroutine_st(SIZE) ((struct meltroutine_st *)(ggc_internal_alloc_stat (SIZE MEM_STAT_INFO)))
884 #endif /* GCC 4.9 or 5.0 */
885 int nbv
= (int) src
->nbval
;
886 size_t sz
= nbv
*sizeof(void*) + offsetof(struct meltroutine_st
, tabval
);
889 /* Don't need a cleared allocation! */
890 ggc_alloc_meltroutine_st (sz
);
891 melt_forwarded_copy_byte_count
+= sz
;
892 dst
->discr
= src
->discr
;
893 strncpy (dst
->routdescr
, src
->routdescr
, MELT_ROUTDESCR_LEN
);
894 dst
->routdescr
[MELT_ROUTDESCR_LEN
- 1] = 0;
895 dst
->nbval
= (unsigned) nbv
;
896 dst
->routfunad
= src
->routfunad
;
900 dst
->tabval
[ix
] = src
->tabval
[ix
];
901 dst
->routdata
= src
->routdata
;
903 n
= (melt_ptr_t
) dst
;
907 /*valdesc #19 VALDESC_SPECIAL_DATA*/
908 case MELTOBMAG_SPECIAL_DATA
:
910 struct meltspecialdata_st
*src
= (struct meltspecialdata_st
*) p
;
911 struct meltspecialdata_st
*dst
= NULL
;
912 /* from VALDESC_SPECIAL_DATA in warmelt-base.melt */
913 // in file warmelt-base.melt line 3550
914 /* ggc_alloc_meltspecialdata_st should be gengtype generated for VALDESC_SPECIAL_DATA */
915 #if GCCPLUGIN_VERSION >= 5000 /* GCC 5.0 */
916 #ifndef ggc_alloc_meltspecialdata_st
917 #define ggc_alloc_meltspecialdata_st() ((struct meltspecialdata_st *)(ggc_internal_alloc (sizeof (struct meltspecialdata_st))))
920 #ifndef ggc_alloc_meltspecialdata_st
921 #define ggc_alloc_meltspecialdata_st() ((struct meltspecialdata_st *)(ggc_internal_alloc_stat (sizeof (struct meltspecialdata_st) MEM_STAT_INFO)))
923 #endif /* GCC not 5.0 */
924 dst
= ggc_alloc_meltspecialdata_st ();
926 /* mark the new copy! */
927 dst
->meltspec_mark
= 1;
928 /* add the new copy to the old (major) special list */
929 dst
->meltspec_next
= melt_oldspecdatalist
;
930 melt_oldspecdatalist
= dst
;
931 melt_forwarded_copy_byte_count
+= sizeof(*dst
);
933 n
= (melt_ptr_t
) dst
;
937 /*valdesc #20 VALDESC_STRBUF*/
938 case MELTOBMAG_STRBUF
:
940 struct meltstrbuf_st
*src
= (struct meltstrbuf_st
*) p
;
941 struct meltstrbuf_st
*dst
= NULL
;
942 /* copy chunk from VALDESC_STRBUF in warmelt-base.melt */
943 // in file warmelt-base.melt line 3145
944 /* ggc_alloc_meltstrbuf_st should be gengtype gengtype for VALDESC_STRBUF */
945 #if GCCPLUGIN_VERSION >= 5000 /* GCC 5.0 */
946 #ifndef ggc_alloc_meltstrbuf_st
947 #define ggc_alloc_meltstrbuf_st() ((struct meltstrbuf_st *)(ggc_internal_alloc (sizeof (struct meltstrbuf_st))))
950 #ifndef ggc_alloc_meltstrbuf_st
951 #define ggc_alloc_meltstrbuf_st() ((struct meltstrbuf_st *)(ggc_internal_alloc_stat (sizeof (struct meltstrbuf_st) MEM_STAT_INFO)))
953 #endif /* GCC not 5.0 */
954 unsigned blen
= melt_primtab
[src
->buflenix
];
955 size_t sz
= sizeof(*dst
);
957 /* Don't need a cleared allocation. */
958 ggc_alloc_meltstrbuf_st ();
959 dst
->discr
= src
->discr
;
960 dst
->bufstart
= src
->bufstart
;
961 dst
->bufend
= src
->bufend
;
962 dst
->buflenix
= src
->buflenix
;
965 dst
->bufzn
= CONST_CAST (char *, ggc_alloc_string (src
->bufzn
, blen
+1));
966 dst
->bufzn
[blen
] = (char)0;
971 melt_forwarded_copy_byte_count
+= sz
;
972 /* end copy chunk from VALDESC_STRBUF */
974 n
= (melt_ptr_t
) dst
;
978 /*valdesc #21 VALDESC_STRING*/
979 case MELTOBMAG_STRING
:
981 struct meltstring_st
*src
= (struct meltstring_st
*) p
;
982 struct meltstring_st
*dst
= NULL
;
983 /* copy from VALDESC_STRING file warmelt-base.melt */
984 // in file warmelt-base.melt line 3090
985 /* ggc_alloc_meltstring_st should be gengtype generated for VALDESC_STRING */
986 #if GCCPLUGIN_VERSION >= 5000 /* GCC 5.0 */
987 #ifndef ggc_alloc_meltstring_st
988 #define ggc_alloc_meltstring_st(SIZE) ((struct meltstring_st *)(ggc_internal_alloc (SIZE)))
991 #ifndef ggc_alloc_meltstring_st
992 #define ggc_alloc_meltstring_st(SIZE) ((struct meltstring_st *)(ggc_internal_alloc_stat (SIZE MEM_STAT_INFO)))
994 #endif /* GCC not 5.0 */
995 int srclen
= (src
->val
)?strlen (src
->val
):0;
996 size_t sz
= offsetof(struct meltstring_st
, val
) + (srclen
+1);
998 /* Don't need a cleared allocation. */
999 ggc_alloc_meltstring_st (sz
);
1000 melt_forwarded_copy_byte_count
+= sz
;
1001 dst
->discr
= src
->discr
;
1002 memcpy (dst
->val
, src
->val
, srclen
);
1003 dst
->val
[srclen
] = (char)0;
1004 dst
->slen
= (unsigned) srclen
;
1005 /* end copy from VALDESC_STRING */
1007 n
= (melt_ptr_t
) dst
;
1012 /* gty ctype forward copy for melt_forwarded_copy */
1013 /*forwcopy gtyctype #1 CTYPE_BASIC_BLOCK generated in warmelt-modes */
1014 case MELTOBMAG_BASICBLOCK
:
1016 /* macro ggc_alloc_meltbasicblock_st should be generated by gengtype not by runtypesupport_forwcopy */
1017 #if GCCPLUGIN_VERSION >= 5000 /* GCC 5.0 */
1018 #ifndef ggc_alloc_meltbasicblock_st
1019 #define ggc_alloc_meltbasicblock_st() ((struct meltbasicblock_st*)(ggc_internal_alloc (sizeof (struct meltbasicblock_st))))
1020 #endif /* ggc_alloc_meltbasicblock_st */
1022 #ifndef ggc_alloc_meltbasicblock_st
1023 #define ggc_alloc_meltbasicblock_st() ((struct meltbasicblock_st*)(ggc_internal_alloc_stat (sizeof (struct meltbasicblock_st) MEM_STAT_INFO)))
1024 #endif /* ggc_alloc_meltbasicblock_st */
1025 #endif /* GCC 4.9 or 5.0 */
1026 struct meltbasicblock_st
*src
= (struct meltbasicblock_st
*) p
;
1027 struct meltbasicblock_st
*dst
= ggc_alloc_meltbasicblock_st ();
1029 n
= (melt_ptr_t
) dst
;
1032 case MELTOBMAG_MAPBASICBLOCKS
:
1034 /* ggc_alloc_meltmapbasicblocks_st should be generated by gengtype not by runtypesupport_forwcopy */
1035 #if GCCPLUGIN_VERSION >= 5000 /* GCC 5.0 */
1036 #ifndef ggc_alloc_meltmapbasicblocks_st
1037 #define ggc_alloc_meltmapbasicblocks_st() ((struct meltmapbasicblocks_st*) (ggc_internal_alloc (sizeof (struct meltmapbasicblocks_st))))
1038 #endif /* ggc_alloc_meltmapbasicblocks_st */
1040 #ifndef ggc_alloc_meltmapbasicblocks_st
1041 #define ggc_alloc_meltmapbasicblocks_st() ((struct meltmapbasicblocks_st*) (ggc_internal_alloc_stat (sizeof (struct meltmapbasicblocks_st) MEM_STAT_INFO)))
1042 #endif /* ggc_alloc_meltmapbasicblocks_st */
1043 #endif /* GCC 4.9 or 5.0 */
1045 /* ggc_alloc_vec_entrybasicblockmelt_st should be generated by gengtype not by runtypesupport_forwcopy */
1046 #if GCCPLUGIN_VERSION >= 5000 /* GCC 5.0 */
1047 #ifndef ggc_alloc_vec_entrybasicblockmelt_st
1048 #define ggc_alloc_vec_entrybasicblockmelt_st(N) ((struct entrybasicblockmelt_st*) (ggc_internal_alloc (sizeof (struct entrybasicblockmelt_st) * (N))))
1051 #ifndef ggc_alloc_vec_entrybasicblockmelt_st
1052 #define ggc_alloc_vec_entrybasicblockmelt_st(n) ((struct entrybasicblockmelt_st*) (ggc_internal_vec_alloc_stat (sizeof (struct entrybasicblockmelt_st), n MEM_STAT_INFO)))
1054 #endif /* GCC 4.9 or 5.0 */
1055 struct meltmapbasicblocks_st
*src
= (struct meltmapbasicblocks_st
*) p
;
1056 int siz
= melt_primtab
[src
->lenix
];
1057 struct meltmapbasicblocks_st
*dst
= ggc_alloc_meltmapbasicblocks_st ();
1058 dst
->discr
= src
->discr
;
1059 dst
->count
= src
->count
;
1060 dst
->lenix
= src
->lenix
;
1061 dst
->meltmap_aux
= src
->meltmap_aux
;
1062 dst
->meltmap_hash
= src
->meltmap_hash
;
1063 if (siz
> 0 && src
->entab
)
1065 dst
->entab
= ggc_alloc_vec_entrybasicblockmelt_st (siz
);
1066 memcpy (dst
->entab
, src
->entab
, siz
* sizeof (dst
->entab
[0]));
1068 else dst
->entab
= NULL
;
1069 n
= (melt_ptr_t
) dst
;
1072 /*forwcopy gtyctype #2 CTYPE_BITMAP generated in warmelt-modes */
1073 case MELTOBMAG_BITMAP
:
1075 /* macro ggc_alloc_meltbitmap_st should be generated by gengtype not by runtypesupport_forwcopy */
1076 #if GCCPLUGIN_VERSION >= 5000 /* GCC 5.0 */
1077 #ifndef ggc_alloc_meltbitmap_st
1078 #define ggc_alloc_meltbitmap_st() ((struct meltbitmap_st*)(ggc_internal_alloc (sizeof (struct meltbitmap_st))))
1079 #endif /* ggc_alloc_meltbitmap_st */
1081 #ifndef ggc_alloc_meltbitmap_st
1082 #define ggc_alloc_meltbitmap_st() ((struct meltbitmap_st*)(ggc_internal_alloc_stat (sizeof (struct meltbitmap_st) MEM_STAT_INFO)))
1083 #endif /* ggc_alloc_meltbitmap_st */
1084 #endif /* GCC 4.9 or 5.0 */
1085 struct meltbitmap_st
*src
= (struct meltbitmap_st
*) p
;
1086 struct meltbitmap_st
*dst
= ggc_alloc_meltbitmap_st ();
1088 n
= (melt_ptr_t
) dst
;
1091 case MELTOBMAG_MAPBITMAPS
:
1093 /* ggc_alloc_meltmapbitmaps_st should be generated by gengtype not by runtypesupport_forwcopy */
1094 #if GCCPLUGIN_VERSION >= 5000 /* GCC 5.0 */
1095 #ifndef ggc_alloc_meltmapbitmaps_st
1096 #define ggc_alloc_meltmapbitmaps_st() ((struct meltmapbitmaps_st*) (ggc_internal_alloc (sizeof (struct meltmapbitmaps_st))))
1097 #endif /* ggc_alloc_meltmapbitmaps_st */
1099 #ifndef ggc_alloc_meltmapbitmaps_st
1100 #define ggc_alloc_meltmapbitmaps_st() ((struct meltmapbitmaps_st*) (ggc_internal_alloc_stat (sizeof (struct meltmapbitmaps_st) MEM_STAT_INFO)))
1101 #endif /* ggc_alloc_meltmapbitmaps_st */
1102 #endif /* GCC 4.9 or 5.0 */
1104 /* ggc_alloc_vec_entrybitmapmelt_st should be generated by gengtype not by runtypesupport_forwcopy */
1105 #if GCCPLUGIN_VERSION >= 5000 /* GCC 5.0 */
1106 #ifndef ggc_alloc_vec_entrybitmapmelt_st
1107 #define ggc_alloc_vec_entrybitmapmelt_st(N) ((struct entrybitmapmelt_st*) (ggc_internal_alloc (sizeof (struct entrybitmapmelt_st) * (N))))
1110 #ifndef ggc_alloc_vec_entrybitmapmelt_st
1111 #define ggc_alloc_vec_entrybitmapmelt_st(n) ((struct entrybitmapmelt_st*) (ggc_internal_vec_alloc_stat (sizeof (struct entrybitmapmelt_st), n MEM_STAT_INFO)))
1113 #endif /* GCC 4.9 or 5.0 */
1114 struct meltmapbitmaps_st
*src
= (struct meltmapbitmaps_st
*) p
;
1115 int siz
= melt_primtab
[src
->lenix
];
1116 struct meltmapbitmaps_st
*dst
= ggc_alloc_meltmapbitmaps_st ();
1117 dst
->discr
= src
->discr
;
1118 dst
->count
= src
->count
;
1119 dst
->lenix
= src
->lenix
;
1120 dst
->meltmap_aux
= src
->meltmap_aux
;
1121 dst
->meltmap_hash
= src
->meltmap_hash
;
1122 if (siz
> 0 && src
->entab
)
1124 dst
->entab
= ggc_alloc_vec_entrybitmapmelt_st (siz
);
1125 memcpy (dst
->entab
, src
->entab
, siz
* sizeof (dst
->entab
[0]));
1127 else dst
->entab
= NULL
;
1128 n
= (melt_ptr_t
) dst
;
1131 /*forwcopy gtyctype #3 CTYPE_EDGE generated in warmelt-modes */
1132 case MELTOBMAG_EDGE
:
1134 /* macro ggc_alloc_meltedge_st should be generated by gengtype not by runtypesupport_forwcopy */
1135 #if GCCPLUGIN_VERSION >= 5000 /* GCC 5.0 */
1136 #ifndef ggc_alloc_meltedge_st
1137 #define ggc_alloc_meltedge_st() ((struct meltedge_st*)(ggc_internal_alloc (sizeof (struct meltedge_st))))
1138 #endif /* ggc_alloc_meltedge_st */
1140 #ifndef ggc_alloc_meltedge_st
1141 #define ggc_alloc_meltedge_st() ((struct meltedge_st*)(ggc_internal_alloc_stat (sizeof (struct meltedge_st) MEM_STAT_INFO)))
1142 #endif /* ggc_alloc_meltedge_st */
1143 #endif /* GCC 4.9 or 5.0 */
1144 struct meltedge_st
*src
= (struct meltedge_st
*) p
;
1145 struct meltedge_st
*dst
= ggc_alloc_meltedge_st ();
1147 n
= (melt_ptr_t
) dst
;
1150 case MELTOBMAG_MAPEDGES
:
1152 /* ggc_alloc_meltmapedges_st should be generated by gengtype not by runtypesupport_forwcopy */
1153 #if GCCPLUGIN_VERSION >= 5000 /* GCC 5.0 */
1154 #ifndef ggc_alloc_meltmapedges_st
1155 #define ggc_alloc_meltmapedges_st() ((struct meltmapedges_st*) (ggc_internal_alloc (sizeof (struct meltmapedges_st))))
1156 #endif /* ggc_alloc_meltmapedges_st */
1158 #ifndef ggc_alloc_meltmapedges_st
1159 #define ggc_alloc_meltmapedges_st() ((struct meltmapedges_st*) (ggc_internal_alloc_stat (sizeof (struct meltmapedges_st) MEM_STAT_INFO)))
1160 #endif /* ggc_alloc_meltmapedges_st */
1161 #endif /* GCC 4.9 or 5.0 */
1163 /* ggc_alloc_vec_entryedgemelt_st should be generated by gengtype not by runtypesupport_forwcopy */
1164 #if GCCPLUGIN_VERSION >= 5000 /* GCC 5.0 */
1165 #ifndef ggc_alloc_vec_entryedgemelt_st
1166 #define ggc_alloc_vec_entryedgemelt_st(N) ((struct entryedgemelt_st*) (ggc_internal_alloc (sizeof (struct entryedgemelt_st) * (N))))
1169 #ifndef ggc_alloc_vec_entryedgemelt_st
1170 #define ggc_alloc_vec_entryedgemelt_st(n) ((struct entryedgemelt_st*) (ggc_internal_vec_alloc_stat (sizeof (struct entryedgemelt_st), n MEM_STAT_INFO)))
1172 #endif /* GCC 4.9 or 5.0 */
1173 struct meltmapedges_st
*src
= (struct meltmapedges_st
*) p
;
1174 int siz
= melt_primtab
[src
->lenix
];
1175 struct meltmapedges_st
*dst
= ggc_alloc_meltmapedges_st ();
1176 dst
->discr
= src
->discr
;
1177 dst
->count
= src
->count
;
1178 dst
->lenix
= src
->lenix
;
1179 dst
->meltmap_aux
= src
->meltmap_aux
;
1180 dst
->meltmap_hash
= src
->meltmap_hash
;
1181 if (siz
> 0 && src
->entab
)
1183 dst
->entab
= ggc_alloc_vec_entryedgemelt_st (siz
);
1184 memcpy (dst
->entab
, src
->entab
, siz
* sizeof (dst
->entab
[0]));
1186 else dst
->entab
= NULL
;
1187 n
= (melt_ptr_t
) dst
;
1190 /*forwcopy gtyctype #4 CTYPE_GIMPLE generated in warmelt-modes */
1191 case MELTOBMAG_GIMPLE
:
1193 /* macro ggc_alloc_meltgimple_st should be generated by gengtype not by runtypesupport_forwcopy */
1194 #if GCCPLUGIN_VERSION >= 5000 /* GCC 5.0 */
1195 #ifndef ggc_alloc_meltgimple_st
1196 #define ggc_alloc_meltgimple_st() ((struct meltgimple_st*)(ggc_internal_alloc (sizeof (struct meltgimple_st))))
1197 #endif /* ggc_alloc_meltgimple_st */
1199 #ifndef ggc_alloc_meltgimple_st
1200 #define ggc_alloc_meltgimple_st() ((struct meltgimple_st*)(ggc_internal_alloc_stat (sizeof (struct meltgimple_st) MEM_STAT_INFO)))
1201 #endif /* ggc_alloc_meltgimple_st */
1202 #endif /* GCC 4.9 or 5.0 */
1203 struct meltgimple_st
*src
= (struct meltgimple_st
*) p
;
1204 struct meltgimple_st
*dst
= ggc_alloc_meltgimple_st ();
1206 n
= (melt_ptr_t
) dst
;
1209 case MELTOBMAG_MAPGIMPLES
:
1211 /* ggc_alloc_meltmapgimples_st should be generated by gengtype not by runtypesupport_forwcopy */
1212 #if GCCPLUGIN_VERSION >= 5000 /* GCC 5.0 */
1213 #ifndef ggc_alloc_meltmapgimples_st
1214 #define ggc_alloc_meltmapgimples_st() ((struct meltmapgimples_st*) (ggc_internal_alloc (sizeof (struct meltmapgimples_st))))
1215 #endif /* ggc_alloc_meltmapgimples_st */
1217 #ifndef ggc_alloc_meltmapgimples_st
1218 #define ggc_alloc_meltmapgimples_st() ((struct meltmapgimples_st*) (ggc_internal_alloc_stat (sizeof (struct meltmapgimples_st) MEM_STAT_INFO)))
1219 #endif /* ggc_alloc_meltmapgimples_st */
1220 #endif /* GCC 4.9 or 5.0 */
1222 /* ggc_alloc_vec_entrygimplemelt_st should be generated by gengtype not by runtypesupport_forwcopy */
1223 #if GCCPLUGIN_VERSION >= 5000 /* GCC 5.0 */
1224 #ifndef ggc_alloc_vec_entrygimplemelt_st
1225 #define ggc_alloc_vec_entrygimplemelt_st(N) ((struct entrygimplemelt_st*) (ggc_internal_alloc (sizeof (struct entrygimplemelt_st) * (N))))
1228 #ifndef ggc_alloc_vec_entrygimplemelt_st
1229 #define ggc_alloc_vec_entrygimplemelt_st(n) ((struct entrygimplemelt_st*) (ggc_internal_vec_alloc_stat (sizeof (struct entrygimplemelt_st), n MEM_STAT_INFO)))
1231 #endif /* GCC 4.9 or 5.0 */
1232 struct meltmapgimples_st
*src
= (struct meltmapgimples_st
*) p
;
1233 int siz
= melt_primtab
[src
->lenix
];
1234 struct meltmapgimples_st
*dst
= ggc_alloc_meltmapgimples_st ();
1235 dst
->discr
= src
->discr
;
1236 dst
->count
= src
->count
;
1237 dst
->lenix
= src
->lenix
;
1238 dst
->meltmap_aux
= src
->meltmap_aux
;
1239 dst
->meltmap_hash
= src
->meltmap_hash
;
1240 if (siz
> 0 && src
->entab
)
1242 dst
->entab
= ggc_alloc_vec_entrygimplemelt_st (siz
);
1243 memcpy (dst
->entab
, src
->entab
, siz
* sizeof (dst
->entab
[0]));
1245 else dst
->entab
= NULL
;
1246 n
= (melt_ptr_t
) dst
;
1249 /*forwcopy gtyctype #5 CTYPE_GIMPLE_SEQ generated in warmelt-modes */
1250 case MELTOBMAG_GIMPLESEQ
:
1252 /* macro ggc_alloc_meltgimpleseq_st should be generated by gengtype not by runtypesupport_forwcopy */
1253 #if GCCPLUGIN_VERSION >= 5000 /* GCC 5.0 */
1254 #ifndef ggc_alloc_meltgimpleseq_st
1255 #define ggc_alloc_meltgimpleseq_st() ((struct meltgimpleseq_st*)(ggc_internal_alloc (sizeof (struct meltgimpleseq_st))))
1256 #endif /* ggc_alloc_meltgimpleseq_st */
1258 #ifndef ggc_alloc_meltgimpleseq_st
1259 #define ggc_alloc_meltgimpleseq_st() ((struct meltgimpleseq_st*)(ggc_internal_alloc_stat (sizeof (struct meltgimpleseq_st) MEM_STAT_INFO)))
1260 #endif /* ggc_alloc_meltgimpleseq_st */
1261 #endif /* GCC 4.9 or 5.0 */
1262 struct meltgimpleseq_st
*src
= (struct meltgimpleseq_st
*) p
;
1263 struct meltgimpleseq_st
*dst
= ggc_alloc_meltgimpleseq_st ();
1265 n
= (melt_ptr_t
) dst
;
1268 case MELTOBMAG_MAPGIMPLESEQS
:
1270 /* ggc_alloc_meltmapgimpleseqs_st should be generated by gengtype not by runtypesupport_forwcopy */
1271 #if GCCPLUGIN_VERSION >= 5000 /* GCC 5.0 */
1272 #ifndef ggc_alloc_meltmapgimpleseqs_st
1273 #define ggc_alloc_meltmapgimpleseqs_st() ((struct meltmapgimpleseqs_st*) (ggc_internal_alloc (sizeof (struct meltmapgimpleseqs_st))))
1274 #endif /* ggc_alloc_meltmapgimpleseqs_st */
1276 #ifndef ggc_alloc_meltmapgimpleseqs_st
1277 #define ggc_alloc_meltmapgimpleseqs_st() ((struct meltmapgimpleseqs_st*) (ggc_internal_alloc_stat (sizeof (struct meltmapgimpleseqs_st) MEM_STAT_INFO)))
1278 #endif /* ggc_alloc_meltmapgimpleseqs_st */
1279 #endif /* GCC 4.9 or 5.0 */
1281 /* ggc_alloc_vec_entrygimpleseqmelt_st should be generated by gengtype not by runtypesupport_forwcopy */
1282 #if GCCPLUGIN_VERSION >= 5000 /* GCC 5.0 */
1283 #ifndef ggc_alloc_vec_entrygimpleseqmelt_st
1284 #define ggc_alloc_vec_entrygimpleseqmelt_st(N) ((struct entrygimpleseqmelt_st*) (ggc_internal_alloc (sizeof (struct entrygimpleseqmelt_st) * (N))))
1287 #ifndef ggc_alloc_vec_entrygimpleseqmelt_st
1288 #define ggc_alloc_vec_entrygimpleseqmelt_st(n) ((struct entrygimpleseqmelt_st*) (ggc_internal_vec_alloc_stat (sizeof (struct entrygimpleseqmelt_st), n MEM_STAT_INFO)))
1290 #endif /* GCC 4.9 or 5.0 */
1291 struct meltmapgimpleseqs_st
*src
= (struct meltmapgimpleseqs_st
*) p
;
1292 int siz
= melt_primtab
[src
->lenix
];
1293 struct meltmapgimpleseqs_st
*dst
= ggc_alloc_meltmapgimpleseqs_st ();
1294 dst
->discr
= src
->discr
;
1295 dst
->count
= src
->count
;
1296 dst
->lenix
= src
->lenix
;
1297 dst
->meltmap_aux
= src
->meltmap_aux
;
1298 dst
->meltmap_hash
= src
->meltmap_hash
;
1299 if (siz
> 0 && src
->entab
)
1301 dst
->entab
= ggc_alloc_vec_entrygimpleseqmelt_st (siz
);
1302 memcpy (dst
->entab
, src
->entab
, siz
* sizeof (dst
->entab
[0]));
1304 else dst
->entab
= NULL
;
1305 n
= (melt_ptr_t
) dst
;
1308 /*forwcopy gtyctype #6 CTYPE_LOOP generated in warmelt-modes */
1309 case MELTOBMAG_LOOP
:
1311 /* macro ggc_alloc_meltloop_st should be generated by gengtype not by runtypesupport_forwcopy */
1312 #if GCCPLUGIN_VERSION >= 5000 /* GCC 5.0 */
1313 #ifndef ggc_alloc_meltloop_st
1314 #define ggc_alloc_meltloop_st() ((struct meltloop_st*)(ggc_internal_alloc (sizeof (struct meltloop_st))))
1315 #endif /* ggc_alloc_meltloop_st */
1317 #ifndef ggc_alloc_meltloop_st
1318 #define ggc_alloc_meltloop_st() ((struct meltloop_st*)(ggc_internal_alloc_stat (sizeof (struct meltloop_st) MEM_STAT_INFO)))
1319 #endif /* ggc_alloc_meltloop_st */
1320 #endif /* GCC 4.9 or 5.0 */
1321 struct meltloop_st
*src
= (struct meltloop_st
*) p
;
1322 struct meltloop_st
*dst
= ggc_alloc_meltloop_st ();
1324 n
= (melt_ptr_t
) dst
;
1327 case MELTOBMAG_MAPLOOPS
:
1329 /* ggc_alloc_meltmaploops_st should be generated by gengtype not by runtypesupport_forwcopy */
1330 #if GCCPLUGIN_VERSION >= 5000 /* GCC 5.0 */
1331 #ifndef ggc_alloc_meltmaploops_st
1332 #define ggc_alloc_meltmaploops_st() ((struct meltmaploops_st*) (ggc_internal_alloc (sizeof (struct meltmaploops_st))))
1333 #endif /* ggc_alloc_meltmaploops_st */
1335 #ifndef ggc_alloc_meltmaploops_st
1336 #define ggc_alloc_meltmaploops_st() ((struct meltmaploops_st*) (ggc_internal_alloc_stat (sizeof (struct meltmaploops_st) MEM_STAT_INFO)))
1337 #endif /* ggc_alloc_meltmaploops_st */
1338 #endif /* GCC 4.9 or 5.0 */
1340 /* ggc_alloc_vec_entryloopmelt_st should be generated by gengtype not by runtypesupport_forwcopy */
1341 #if GCCPLUGIN_VERSION >= 5000 /* GCC 5.0 */
1342 #ifndef ggc_alloc_vec_entryloopmelt_st
1343 #define ggc_alloc_vec_entryloopmelt_st(N) ((struct entryloopmelt_st*) (ggc_internal_alloc (sizeof (struct entryloopmelt_st) * (N))))
1346 #ifndef ggc_alloc_vec_entryloopmelt_st
1347 #define ggc_alloc_vec_entryloopmelt_st(n) ((struct entryloopmelt_st*) (ggc_internal_vec_alloc_stat (sizeof (struct entryloopmelt_st), n MEM_STAT_INFO)))
1349 #endif /* GCC 4.9 or 5.0 */
1350 struct meltmaploops_st
*src
= (struct meltmaploops_st
*) p
;
1351 int siz
= melt_primtab
[src
->lenix
];
1352 struct meltmaploops_st
*dst
= ggc_alloc_meltmaploops_st ();
1353 dst
->discr
= src
->discr
;
1354 dst
->count
= src
->count
;
1355 dst
->lenix
= src
->lenix
;
1356 dst
->meltmap_aux
= src
->meltmap_aux
;
1357 dst
->meltmap_hash
= src
->meltmap_hash
;
1358 if (siz
> 0 && src
->entab
)
1360 dst
->entab
= ggc_alloc_vec_entryloopmelt_st (siz
);
1361 memcpy (dst
->entab
, src
->entab
, siz
* sizeof (dst
->entab
[0]));
1363 else dst
->entab
= NULL
;
1364 n
= (melt_ptr_t
) dst
;
1367 /*forwcopy gtyctype #7 CTYPE_RTVEC generated in warmelt-modes */
1368 case MELTOBMAG_RTVEC
:
1370 /* macro ggc_alloc_meltrtvec_st should be generated by gengtype not by runtypesupport_forwcopy */
1371 #if GCCPLUGIN_VERSION >= 5000 /* GCC 5.0 */
1372 #ifndef ggc_alloc_meltrtvec_st
1373 #define ggc_alloc_meltrtvec_st() ((struct meltrtvec_st*)(ggc_internal_alloc (sizeof (struct meltrtvec_st))))
1374 #endif /* ggc_alloc_meltrtvec_st */
1376 #ifndef ggc_alloc_meltrtvec_st
1377 #define ggc_alloc_meltrtvec_st() ((struct meltrtvec_st*)(ggc_internal_alloc_stat (sizeof (struct meltrtvec_st) MEM_STAT_INFO)))
1378 #endif /* ggc_alloc_meltrtvec_st */
1379 #endif /* GCC 4.9 or 5.0 */
1380 struct meltrtvec_st
*src
= (struct meltrtvec_st
*) p
;
1381 struct meltrtvec_st
*dst
= ggc_alloc_meltrtvec_st ();
1383 n
= (melt_ptr_t
) dst
;
1386 case MELTOBMAG_MAPRTVECS
:
1388 /* ggc_alloc_meltmaprtvecs_st should be generated by gengtype not by runtypesupport_forwcopy */
1389 #if GCCPLUGIN_VERSION >= 5000 /* GCC 5.0 */
1390 #ifndef ggc_alloc_meltmaprtvecs_st
1391 #define ggc_alloc_meltmaprtvecs_st() ((struct meltmaprtvecs_st*) (ggc_internal_alloc (sizeof (struct meltmaprtvecs_st))))
1392 #endif /* ggc_alloc_meltmaprtvecs_st */
1394 #ifndef ggc_alloc_meltmaprtvecs_st
1395 #define ggc_alloc_meltmaprtvecs_st() ((struct meltmaprtvecs_st*) (ggc_internal_alloc_stat (sizeof (struct meltmaprtvecs_st) MEM_STAT_INFO)))
1396 #endif /* ggc_alloc_meltmaprtvecs_st */
1397 #endif /* GCC 4.9 or 5.0 */
1399 /* ggc_alloc_vec_entryrtvecmelt_st should be generated by gengtype not by runtypesupport_forwcopy */
1400 #if GCCPLUGIN_VERSION >= 5000 /* GCC 5.0 */
1401 #ifndef ggc_alloc_vec_entryrtvecmelt_st
1402 #define ggc_alloc_vec_entryrtvecmelt_st(N) ((struct entryrtvecmelt_st*) (ggc_internal_alloc (sizeof (struct entryrtvecmelt_st) * (N))))
1405 #ifndef ggc_alloc_vec_entryrtvecmelt_st
1406 #define ggc_alloc_vec_entryrtvecmelt_st(n) ((struct entryrtvecmelt_st*) (ggc_internal_vec_alloc_stat (sizeof (struct entryrtvecmelt_st), n MEM_STAT_INFO)))
1408 #endif /* GCC 4.9 or 5.0 */
1409 struct meltmaprtvecs_st
*src
= (struct meltmaprtvecs_st
*) p
;
1410 int siz
= melt_primtab
[src
->lenix
];
1411 struct meltmaprtvecs_st
*dst
= ggc_alloc_meltmaprtvecs_st ();
1412 dst
->discr
= src
->discr
;
1413 dst
->count
= src
->count
;
1414 dst
->lenix
= src
->lenix
;
1415 dst
->meltmap_aux
= src
->meltmap_aux
;
1416 dst
->meltmap_hash
= src
->meltmap_hash
;
1417 if (siz
> 0 && src
->entab
)
1419 dst
->entab
= ggc_alloc_vec_entryrtvecmelt_st (siz
);
1420 memcpy (dst
->entab
, src
->entab
, siz
* sizeof (dst
->entab
[0]));
1422 else dst
->entab
= NULL
;
1423 n
= (melt_ptr_t
) dst
;
1426 /*forwcopy gtyctype #8 CTYPE_RTX generated in warmelt-modes */
1429 /* macro ggc_alloc_meltrtx_st should be generated by gengtype not by runtypesupport_forwcopy */
1430 #if GCCPLUGIN_VERSION >= 5000 /* GCC 5.0 */
1431 #ifndef ggc_alloc_meltrtx_st
1432 #define ggc_alloc_meltrtx_st() ((struct meltrtx_st*)(ggc_internal_alloc (sizeof (struct meltrtx_st))))
1433 #endif /* ggc_alloc_meltrtx_st */
1435 #ifndef ggc_alloc_meltrtx_st
1436 #define ggc_alloc_meltrtx_st() ((struct meltrtx_st*)(ggc_internal_alloc_stat (sizeof (struct meltrtx_st) MEM_STAT_INFO)))
1437 #endif /* ggc_alloc_meltrtx_st */
1438 #endif /* GCC 4.9 or 5.0 */
1439 struct meltrtx_st
*src
= (struct meltrtx_st
*) p
;
1440 struct meltrtx_st
*dst
= ggc_alloc_meltrtx_st ();
1442 n
= (melt_ptr_t
) dst
;
1445 case MELTOBMAG_MAPRTXS
:
1447 /* ggc_alloc_meltmaprtxs_st should be generated by gengtype not by runtypesupport_forwcopy */
1448 #if GCCPLUGIN_VERSION >= 5000 /* GCC 5.0 */
1449 #ifndef ggc_alloc_meltmaprtxs_st
1450 #define ggc_alloc_meltmaprtxs_st() ((struct meltmaprtxs_st*) (ggc_internal_alloc (sizeof (struct meltmaprtxs_st))))
1451 #endif /* ggc_alloc_meltmaprtxs_st */
1453 #ifndef ggc_alloc_meltmaprtxs_st
1454 #define ggc_alloc_meltmaprtxs_st() ((struct meltmaprtxs_st*) (ggc_internal_alloc_stat (sizeof (struct meltmaprtxs_st) MEM_STAT_INFO)))
1455 #endif /* ggc_alloc_meltmaprtxs_st */
1456 #endif /* GCC 4.9 or 5.0 */
1458 /* ggc_alloc_vec_entryrtxmelt_st should be generated by gengtype not by runtypesupport_forwcopy */
1459 #if GCCPLUGIN_VERSION >= 5000 /* GCC 5.0 */
1460 #ifndef ggc_alloc_vec_entryrtxmelt_st
1461 #define ggc_alloc_vec_entryrtxmelt_st(N) ((struct entryrtxmelt_st*) (ggc_internal_alloc (sizeof (struct entryrtxmelt_st) * (N))))
1464 #ifndef ggc_alloc_vec_entryrtxmelt_st
1465 #define ggc_alloc_vec_entryrtxmelt_st(n) ((struct entryrtxmelt_st*) (ggc_internal_vec_alloc_stat (sizeof (struct entryrtxmelt_st), n MEM_STAT_INFO)))
1467 #endif /* GCC 4.9 or 5.0 */
1468 struct meltmaprtxs_st
*src
= (struct meltmaprtxs_st
*) p
;
1469 int siz
= melt_primtab
[src
->lenix
];
1470 struct meltmaprtxs_st
*dst
= ggc_alloc_meltmaprtxs_st ();
1471 dst
->discr
= src
->discr
;
1472 dst
->count
= src
->count
;
1473 dst
->lenix
= src
->lenix
;
1474 dst
->meltmap_aux
= src
->meltmap_aux
;
1475 dst
->meltmap_hash
= src
->meltmap_hash
;
1476 if (siz
> 0 && src
->entab
)
1478 dst
->entab
= ggc_alloc_vec_entryrtxmelt_st (siz
);
1479 memcpy (dst
->entab
, src
->entab
, siz
* sizeof (dst
->entab
[0]));
1481 else dst
->entab
= NULL
;
1482 n
= (melt_ptr_t
) dst
;
1485 /*forwcopy gtyctype #9 CTYPE_TREE generated in warmelt-modes */
1486 case MELTOBMAG_TREE
:
1488 /* macro ggc_alloc_melttree_st should be generated by gengtype not by runtypesupport_forwcopy */
1489 #if GCCPLUGIN_VERSION >= 5000 /* GCC 5.0 */
1490 #ifndef ggc_alloc_melttree_st
1491 #define ggc_alloc_melttree_st() ((struct melttree_st*)(ggc_internal_alloc (sizeof (struct melttree_st))))
1492 #endif /* ggc_alloc_melttree_st */
1494 #ifndef ggc_alloc_melttree_st
1495 #define ggc_alloc_melttree_st() ((struct melttree_st*)(ggc_internal_alloc_stat (sizeof (struct melttree_st) MEM_STAT_INFO)))
1496 #endif /* ggc_alloc_melttree_st */
1497 #endif /* GCC 4.9 or 5.0 */
1498 struct melttree_st
*src
= (struct melttree_st
*) p
;
1499 struct melttree_st
*dst
= ggc_alloc_melttree_st ();
1501 n
= (melt_ptr_t
) dst
;
1504 case MELTOBMAG_MAPTREES
:
1506 /* ggc_alloc_meltmaptrees_st should be generated by gengtype not by runtypesupport_forwcopy */
1507 #if GCCPLUGIN_VERSION >= 5000 /* GCC 5.0 */
1508 #ifndef ggc_alloc_meltmaptrees_st
1509 #define ggc_alloc_meltmaptrees_st() ((struct meltmaptrees_st*) (ggc_internal_alloc (sizeof (struct meltmaptrees_st))))
1510 #endif /* ggc_alloc_meltmaptrees_st */
1512 #ifndef ggc_alloc_meltmaptrees_st
1513 #define ggc_alloc_meltmaptrees_st() ((struct meltmaptrees_st*) (ggc_internal_alloc_stat (sizeof (struct meltmaptrees_st) MEM_STAT_INFO)))
1514 #endif /* ggc_alloc_meltmaptrees_st */
1515 #endif /* GCC 4.9 or 5.0 */
1517 /* ggc_alloc_vec_entrytreemelt_st should be generated by gengtype not by runtypesupport_forwcopy */
1518 #if GCCPLUGIN_VERSION >= 5000 /* GCC 5.0 */
1519 #ifndef ggc_alloc_vec_entrytreemelt_st
1520 #define ggc_alloc_vec_entrytreemelt_st(N) ((struct entrytreemelt_st*) (ggc_internal_alloc (sizeof (struct entrytreemelt_st) * (N))))
1523 #ifndef ggc_alloc_vec_entrytreemelt_st
1524 #define ggc_alloc_vec_entrytreemelt_st(n) ((struct entrytreemelt_st*) (ggc_internal_vec_alloc_stat (sizeof (struct entrytreemelt_st), n MEM_STAT_INFO)))
1526 #endif /* GCC 4.9 or 5.0 */
1527 struct meltmaptrees_st
*src
= (struct meltmaptrees_st
*) p
;
1528 int siz
= melt_primtab
[src
->lenix
];
1529 struct meltmaptrees_st
*dst
= ggc_alloc_meltmaptrees_st ();
1530 dst
->discr
= src
->discr
;
1531 dst
->count
= src
->count
;
1532 dst
->lenix
= src
->lenix
;
1533 dst
->meltmap_aux
= src
->meltmap_aux
;
1534 dst
->meltmap_hash
= src
->meltmap_hash
;
1535 if (siz
> 0 && src
->entab
)
1537 dst
->entab
= ggc_alloc_vec_entrytreemelt_st (siz
);
1538 memcpy (dst
->entab
, src
->entab
, siz
* sizeof (dst
->entab
[0]));
1540 else dst
->entab
= NULL
;
1541 n
= (melt_ptr_t
) dst
;
1544 /* trailer generated by generate_runtypesupport_forwcopy_fun */
1546 melt_fatal_error ("MELT corruption: forward invalid p=%p discr=%p magic=%d [%s]",
1547 (void *) p
, (void *) p
->u_discr
, mag
, melt_obmag_string (mag
));
1548 } /* end switch (mag) */
1550 melt_debuggc_eprintf ("melt_forwarded_copy#%ld/%04ld %p => %p %s",
1551 melt_nb_garbcoll
, melt_forward_counter
, (void*)p
,
1552 (void*)n
, melt_obmag_string (mag
));
1556 if (melt_alptr_1
&& (void*)melt_alptr_1
== (void*)n
)
1558 fprintf (stderr
, "melt_forwarded_copy to alptr_1 %p mag %d\n", melt_alptr_1
, mag
);
1560 melt_debuggc_eprintf("melt_forwarded_copy #%ld alptr_1 %p mag %d",
1561 melt_nb_garbcoll
, melt_alptr_1
, mag
);
1562 melt_break_alptr_1 ("forwarded copy to alptr_1");
1564 if (melt_alptr_2
&& (void*)melt_alptr_2
== (void*)n
)
1566 fprintf (stderr
, "melt_forwarded_copy to alptr_2 %p mag %d\n", melt_alptr_2
, mag
);
1568 melt_debuggc_eprintf("melt_forwarded_copy #%ld alptr_2 %p",
1569 melt_nb_garbcoll
, melt_alptr_2
);
1570 melt_break_alptr_2 ("forwarded copy to alptr_2");
1572 #endif /*ENABLE_CHECKING*/
1574 p
->u_forward
.discr
= MELT_FORWARDED_DISCR
;
1575 p
->u_forward
.forward
= n
;
1577 gcc_assert (melt_scangcvect
!= NULL
);
1579 unsigned long ulen
= melt_scangcvect
->vv_ulen
;
1580 if (MELT_UNLIKELY(ulen
+ 3 < melt_scangcvect
->vv_size
))
1582 unsigned long newsiz
= (ulen
+ ulen
/4 + 100);
1583 melt_resize_scangcvect (newsiz
);
1585 melt_scangcvect
->vv_tab
[ulen
] = n
;
1586 melt_scangcvect
->vv_ulen
= ulen
+1;
1591 } /* end of melt_forwarded_copy generated by generate_runtypesupport_forwcopy_fun */
1593 /** end of code generated by generate_runtypesupport_forwcopy_fun **/
1597 /** start of code generated by generate_runtypesupport_scanning **/
1598 /* header from generate_runtypesupport_scanning */
1599 /* The melt_scanning routine is mostly Chesney like ; however some types,
1600 including objects, strbuf, stringmaps, objectmaps, all the other
1601 *maps, contain a pointer to a non value ; this pointer should be
1602 carefully updated if it was young. */
1604 melt_scanning (melt_ptr_t p
)
1606 unsigned omagic
= 0;
1609 gcc_assert (p
!= (void *) HTAB_DELETED_ENTRY
);
1610 gcc_assert (p
->u_discr
&& p
->u_discr
!= (meltobject_ptr_t
) 1);
1611 MELT_FORWARDED (p
->u_discr
);
1612 gcc_assert (!melt_is_young (p
));
1613 omagic
= p
->u_discr
->meltobj_magic
;
1616 /* end of header from generate_runtypesupport_scanning*/
1618 /*valdesc #1 VALDESC_BUCKETLONGS*/
1619 case MELTOBMAG_BUCKETLONGS
:
1621 struct meltbucketlongs_st
*src
= (struct meltbucketlongs_st
*) p
;
1622 /* forwarding chunk from VALDESC_BUCKETLONGS in warmelt-base.melt */
1623 // in file warmelt-base.melt line 2917
1624 unsigned lnix
= src
->buckl_lenix
;
1625 unsigned len
= melt_primtab
[lnix
];
1626 unsigned ucnt
= src
->buckl_ucount
;
1628 gcc_assert (lnix
> 0);
1629 gcc_assert (len
> 0);
1630 MELT_FORWARDED (src
->buckl_aux
);
1631 gcc_assert (ucnt
<= len
);
1635 MELT_FORWARDED (src
->buckl_entab
[ix
].ebl_va
);
1636 /* end forwarding VALDESC_BUCKETLONGS */
1641 /*valdesc #2 VALDESC_CLOSURE*/
1642 case MELTOBMAG_CLOSURE
:
1644 struct meltclosure_st
*src
= (struct meltclosure_st
*) p
;
1645 /* forwarding from VALDESC_CLOSURE in warmelt-base.melt */
1646 // in file warmelt-base.melt line 2632
1647 int nbval
= (int) src
->nbval
;
1648 MELT_FORWARDED (src
->rout
);
1652 MELT_FORWARDED (src
->tabval
[ix
]);
1657 /*valdesc #3 VALDESC_DECAY*/
1658 case MELTOBMAG_DECAY
:
1660 struct meltdecay_st
*src
= (struct meltdecay_st
*) p
;
1661 /* from VALDESC_DECAY in warmelt-base.melt */
1662 // in file warmelt-base.melt line 2501
1663 MELT_FORWARDED (src
->val
);
1668 /*valdesc #4 VALDESC_DOUBLE*/
1669 case MELTOBMAG_DOUBLE
:
1674 /*valdesc #5 VALDESC_HOOK*/
1675 case MELTOBMAG_HOOK
:
1677 struct melthook_st
*src
= (struct melthook_st
*) p
;
1678 /* from VALDESC_HOOK in warmelt-base.melt */
1679 // in file warmelt-base.melt line 2808
1680 int nbval
= (int) src
->nbval
;
1685 MELT_FORWARDED (src
->tabval
[ix
]);
1686 MELT_FORWARDED (src
->hookdata
);
1691 /*valdesc #6 VALDESC_INT*/
1697 /*valdesc #7 VALDESC_JSONOBJECT*/
1698 case MELTOBMAG_JSONOBJECT
:
1700 struct meltjsonobject_st
*src
= (struct meltjsonobject_st
*) p
;
1701 /* forwarding chunk from VALDESC_JSONOBJECT in warmelt-base.melt */
1702 // in file warmelt-base.melt line 3054
1703 unsigned srcsize
= src
->jsob_size
;
1704 MELT_FORWARDED(src
->jsob_aux
);
1705 for (unsigned ix
= 0;
1709 MELT_FORWARDED(src
->jsob_entab
[ix
].jsonob_name
);
1710 MELT_FORWARDED(src
->jsob_entab
[ix
].jsonob_val
);
1712 /* end forwarding chunk VALDESC_JSONOBJECT */
1717 /*valdesc #8 VALDESC_LIST*/
1718 case MELTOBMAG_LIST
:
1720 struct meltlist_st
*src
= (struct meltlist_st
*) p
;
1721 /* from VALDESC_LIST in warmelt-base.melt */
1722 // in file warmelt-base.melt line 3289
1723 MELT_FORWARDED (src
->first
);
1724 MELT_FORWARDED (src
->last
);
1729 /*valdesc #9 VALDESC_MAPOBJECTS*/
1730 case MELTOBMAG_MAPOBJECTS
:
1732 struct meltmapobjects_st
*src
= (struct meltmapobjects_st
*) p
;
1733 /* forwarding from VALDESC_MAPOBJECTS in warmelt-base.melt */
1734 // in file warmelt-base.melt line 2307
1736 MELT_FORWARDED(src
->meltmap_aux
);
1739 siz
= melt_primtab
[src
->lenix
];
1740 gcc_assert (siz
> 0);
1741 if (melt_is_young (src
->entab
))
1743 struct entryobjectsmelt_st
*newtab
=
1744 /* Don't need a cleared allocation! */
1745 ggc_alloc_vec_entryobjectsmelt_st (siz
);
1746 memcpy (newtab
, src
->entab
,
1747 siz
* sizeof (struct entryobjectsmelt_st
));
1748 src
->entab
= newtab
;
1754 meltobject_ptr_t at
= src
->entab
[ix
].e_at
;
1755 if (!at
|| at
== (void *) HTAB_DELETED_ENTRY
)
1757 src
->entab
[ix
].e_va
= NULL
;
1760 MELT_FORWARDED (at
);
1761 src
->entab
[ix
].e_at
= at
;
1762 MELT_FORWARDED (src
->entab
[ix
].e_va
);
1764 /* end forwarding from VALDESC_MAPOBJECTS */
1769 /*valdesc #10 VALDESC_MAPSTRINGS*/
1770 case MELTOBMAG_MAPSTRINGS
:
1772 struct meltmapstrings_st
*src
= (struct meltmapstrings_st
*) p
;
1773 /* forwarding from VALDESC_MAPSTRINGS in warmelt-base.melt */
1774 // in file warmelt-base.melt line 2433
1776 MELT_FORWARDED(src
->meltmap_aux
);
1779 siz
= melt_primtab
[src
->lenix
];
1780 gcc_assert (siz
> 0);
1781 if (melt_is_young (src
->entab
))
1783 struct entrystringsmelt_st
*newtab
1784 /* Don't need a cleared allocation! */
1785 = ggc_alloc_vec_entrystringsmelt_st (siz
);
1786 memcpy (newtab
, src
->entab
,
1787 siz
* sizeof (struct entrystringsmelt_st
));
1788 src
->entab
= newtab
;
1794 const char *at
= src
->entab
[ix
].e_at
;
1795 if (!at
|| at
== (void *) HTAB_DELETED_ENTRY
)
1797 src
->entab
[ix
].e_va
= NULL
;
1800 if (melt_is_young ((const void *) at
))
1801 src
->entab
[ix
].e_at
= (const char *) ggc_strdup (at
);
1802 MELT_FORWARDED (src
->entab
[ix
].e_va
);
1804 /* end forwarding from VALDESC_MAPSTRINGS */
1809 /*valdesc #11 VALDESC_MIXBIGINT*/
1810 case MELTOBMAG_MIXBIGINT
:
1812 struct meltmixbigint_st
*src
= (struct meltmixbigint_st
*) p
;
1813 /* from VALDESC_MIXBIGINT file warmelt-base.melt */
1814 // in file warmelt-base.melt line 3494
1815 MELT_FORWARDED (src
->ptrval
);
1820 /*valdesc #12 VALDESC_MIXINT*/
1821 case MELTOBMAG_MIXINT
:
1823 struct meltmixint_st
*src
= (struct meltmixint_st
*) p
;
1824 /* from VALDESC_MIXINT file warmelt-base.melt */
1825 MELT_FORWARDED (src
->ptrval
);
1830 /*valdesc #13 VALDESC_MIXLOC*/
1831 case MELTOBMAG_MIXLOC
:
1833 struct meltmixloc_st
*src
= (struct meltmixloc_st
*) p
;
1834 /* from VALDESC_MIXLOC file warmelt-base.melt */
1835 // in file warmelt-base.melt line 3445
1836 MELT_FORWARDED (src
->ptrval
);
1841 /*valdesc #14 VALDESC_MULTIPLE*/
1842 case MELTOBMAG_MULTIPLE
:
1844 struct meltmultiple_st
*src
= (struct meltmultiple_st
*) p
;
1845 /* forwarding chunk from VALDESC_MULTIPLE in warmelt-base.melt */
1846 // in file warmelt-base.melt line 2573
1847 int nbval
= (int) src
->nbval
;
1851 MELT_FORWARDED (src
->tabval
[ix
]);
1852 /* end forwarding chunk from VALDESC_MULTIPLE */
1857 /*valdesc #15 VALDESC_OBJECT*/
1858 case MELTOBMAG_OBJECT
:
1860 struct meltobject_st
*src
= (struct meltobject_st
*) p
;
1861 /* from VALDESC_OBJECT */
1862 // in file warmelt-base.melt line 2187
1864 int oblen
= (int) (src
->obj_len
);
1865 for (ix
= 0; ix
< oblen
; ix
++)
1866 MELT_FORWARDED (src
->obj_vartab
[ix
]);
1868 /* for low level debugging with gdb, we may want to catch some forwarding operations */
1869 if (melt_alptr_1
&& (void*) src
== melt_alptr_1
)
1870 melt_break_alptr_1 ("forwardobj src=alptr1");
1871 if (melt_alptr_2
&& (void*) src
== melt_alptr_2
)
1872 melt_break_alptr_2 ("forwardobj src=alptr2");
1873 if (src
->obj_hash
== melt_objhash_1
)
1874 melt_break_objhash_1("forwardobj src with objhash1");
1875 if (src
->obj_hash
== melt_objhash_2
)
1876 melt_break_objhash_2("forwardobj src with objhash2");
1877 #endif /* ENABLE_CHECKING */
1882 /*valdesc #16 VALDESC_PAIR*/
1883 case MELTOBMAG_PAIR
:
1885 struct meltpair_st
*src
= (struct meltpair_st
*) p
;
1886 /* forward VALDESC_PAIR in warmelt-base.melt */
1887 // in file warmelt-base.melt line 3225
1888 MELT_FORWARDED (src
->hd
);
1889 MELT_FORWARDED (src
->tl
);
1894 /*valdesc #17 VALDESC_REAL*/
1895 case MELTOBMAG_REAL
:
1900 /*valdesc #18 VALDESC_ROUTINE*/
1901 case MELTOBMAG_ROUTINE
:
1903 struct meltroutine_st
*src
= (struct meltroutine_st
*) p
;
1904 /* from VALDESC_ROUTINE in warmelt-base.melt */
1905 // in file warmelt-base.melt line 2728
1906 int nbval
= (int) src
->nbval
;
1910 MELT_FORWARDED (src
->tabval
[ix
]);
1911 MELT_FORWARDED (src
->routdata
);
1916 /*valdesc #19 VALDESC_SPECIAL_DATA*/
1917 case MELTOBMAG_SPECIAL_DATA
:
1919 struct meltspecialdata_st
*src
= (struct meltspecialdata_st
*) p
;
1920 /* from VALDESC_SPECIAL_DATA file warmelt-base.melt */
1921 src
->meltspec_mark
= 1;
1922 MELT_FORWARDED (src
->meltspec_value
);
1927 /*valdesc #20 VALDESC_STRBUF*/
1928 case MELTOBMAG_STRBUF
:
1933 /*valdesc #21 VALDESC_STRING*/
1934 case MELTOBMAG_STRING
:
1939 /* GTY-ed ctypes scan forward for melt_scanning */
1940 /*gtyctype #1 CTYPE_BASIC_BLOCK*/
1941 case MELTOBMAG_BASICBLOCK
:
1943 case MELTOBMAG_MAPBASICBLOCKS
:
1945 struct meltmapbasicblocks_st
*src
= (struct meltmapbasicblocks_st
*) p
;
1947 MELT_FORWARDED(src
->meltmap_aux
);
1948 if (!src
->entab
) break;
1949 siz
= melt_primtab
[src
->lenix
];
1951 if (melt_is_young (src
->entab
))
1953 struct entrybasicblockmelt_st
* newtab
= ggc_alloc_vec_entrybasicblockmelt_st (siz
);
1954 memcpy (newtab
, src
->entab
, siz
* sizeof (struct entrybasicblockmelt_st
));
1955 src
->entab
= newtab
;
1956 } /*end if young entab */
1957 for (ix
= 0; ix
< siz
; ix
++)
1959 basic_block at
= src
->entab
[ix
].e_at
;
1960 if (!at
|| (void*) at
== (void*) HTAB_DELETED_ENTRY
)
1962 src
->entab
[ix
].e_va
= NULL
;
1964 } /*end if empty at */
1965 MELT_FORWARDED (src
->entab
[ix
].e_va
);
1967 }; /* end case MELTOBMAG_MAPBASICBLOCKS */
1969 /*gtyctype #2 CTYPE_BITMAP*/
1970 case MELTOBMAG_BITMAP
:
1972 case MELTOBMAG_MAPBITMAPS
:
1974 struct meltmapbitmaps_st
*src
= (struct meltmapbitmaps_st
*) p
;
1976 MELT_FORWARDED(src
->meltmap_aux
);
1977 if (!src
->entab
) break;
1978 siz
= melt_primtab
[src
->lenix
];
1980 if (melt_is_young (src
->entab
))
1982 struct entrybitmapmelt_st
* newtab
= ggc_alloc_vec_entrybitmapmelt_st (siz
);
1983 memcpy (newtab
, src
->entab
, siz
* sizeof (struct entrybitmapmelt_st
));
1984 src
->entab
= newtab
;
1985 } /*end if young entab */
1986 for (ix
= 0; ix
< siz
; ix
++)
1988 bitmap at
= src
->entab
[ix
].e_at
;
1989 if (!at
|| (void*) at
== (void*) HTAB_DELETED_ENTRY
)
1991 src
->entab
[ix
].e_va
= NULL
;
1993 } /*end if empty at */
1994 MELT_FORWARDED (src
->entab
[ix
].e_va
);
1996 }; /* end case MELTOBMAG_MAPBITMAPS */
1998 /*gtyctype #3 CTYPE_EDGE*/
1999 case MELTOBMAG_EDGE
:
2001 case MELTOBMAG_MAPEDGES
:
2003 struct meltmapedges_st
*src
= (struct meltmapedges_st
*) p
;
2005 MELT_FORWARDED(src
->meltmap_aux
);
2006 if (!src
->entab
) break;
2007 siz
= melt_primtab
[src
->lenix
];
2009 if (melt_is_young (src
->entab
))
2011 struct entryedgemelt_st
* newtab
= ggc_alloc_vec_entryedgemelt_st (siz
);
2012 memcpy (newtab
, src
->entab
, siz
* sizeof (struct entryedgemelt_st
));
2013 src
->entab
= newtab
;
2014 } /*end if young entab */
2015 for (ix
= 0; ix
< siz
; ix
++)
2017 edge at
= src
->entab
[ix
].e_at
;
2018 if (!at
|| (void*) at
== (void*) HTAB_DELETED_ENTRY
)
2020 src
->entab
[ix
].e_va
= NULL
;
2022 } /*end if empty at */
2023 MELT_FORWARDED (src
->entab
[ix
].e_va
);
2025 }; /* end case MELTOBMAG_MAPEDGES */
2027 /*gtyctype #4 CTYPE_GIMPLE*/
2028 case MELTOBMAG_GIMPLE
:
2030 case MELTOBMAG_MAPGIMPLES
:
2032 struct meltmapgimples_st
*src
= (struct meltmapgimples_st
*) p
;
2034 MELT_FORWARDED(src
->meltmap_aux
);
2035 if (!src
->entab
) break;
2036 siz
= melt_primtab
[src
->lenix
];
2038 if (melt_is_young (src
->entab
))
2040 struct entrygimplemelt_st
* newtab
= ggc_alloc_vec_entrygimplemelt_st (siz
);
2041 memcpy (newtab
, src
->entab
, siz
* sizeof (struct entrygimplemelt_st
));
2042 src
->entab
= newtab
;
2043 } /*end if young entab */
2044 for (ix
= 0; ix
< siz
; ix
++)
2046 gimple at
= src
->entab
[ix
].e_at
;
2047 if (!at
|| (void*) at
== (void*) HTAB_DELETED_ENTRY
)
2049 src
->entab
[ix
].e_va
= NULL
;
2051 } /*end if empty at */
2052 MELT_FORWARDED (src
->entab
[ix
].e_va
);
2054 }; /* end case MELTOBMAG_MAPGIMPLES */
2056 /*gtyctype #5 CTYPE_GIMPLE_SEQ*/
2057 case MELTOBMAG_GIMPLESEQ
:
2059 case MELTOBMAG_MAPGIMPLESEQS
:
2061 struct meltmapgimpleseqs_st
*src
= (struct meltmapgimpleseqs_st
*) p
;
2063 MELT_FORWARDED(src
->meltmap_aux
);
2064 if (!src
->entab
) break;
2065 siz
= melt_primtab
[src
->lenix
];
2067 if (melt_is_young (src
->entab
))
2069 struct entrygimpleseqmelt_st
* newtab
= ggc_alloc_vec_entrygimpleseqmelt_st (siz
);
2070 memcpy (newtab
, src
->entab
, siz
* sizeof (struct entrygimpleseqmelt_st
));
2071 src
->entab
= newtab
;
2072 } /*end if young entab */
2073 for (ix
= 0; ix
< siz
; ix
++)
2075 gimple_seq at
= src
->entab
[ix
].e_at
;
2076 if (!at
|| (void*) at
== (void*) HTAB_DELETED_ENTRY
)
2078 src
->entab
[ix
].e_va
= NULL
;
2080 } /*end if empty at */
2081 MELT_FORWARDED (src
->entab
[ix
].e_va
);
2083 }; /* end case MELTOBMAG_MAPGIMPLESEQS */
2085 /*gtyctype #6 CTYPE_LOOP*/
2086 case MELTOBMAG_LOOP
:
2088 case MELTOBMAG_MAPLOOPS
:
2090 struct meltmaploops_st
*src
= (struct meltmaploops_st
*) p
;
2092 MELT_FORWARDED(src
->meltmap_aux
);
2093 if (!src
->entab
) break;
2094 siz
= melt_primtab
[src
->lenix
];
2096 if (melt_is_young (src
->entab
))
2098 struct entryloopmelt_st
* newtab
= ggc_alloc_vec_entryloopmelt_st (siz
);
2099 memcpy (newtab
, src
->entab
, siz
* sizeof (struct entryloopmelt_st
));
2100 src
->entab
= newtab
;
2101 } /*end if young entab */
2102 for (ix
= 0; ix
< siz
; ix
++)
2104 loop_p at
= src
->entab
[ix
].e_at
;
2105 if (!at
|| (void*) at
== (void*) HTAB_DELETED_ENTRY
)
2107 src
->entab
[ix
].e_va
= NULL
;
2109 } /*end if empty at */
2110 MELT_FORWARDED (src
->entab
[ix
].e_va
);
2112 }; /* end case MELTOBMAG_MAPLOOPS */
2114 /*gtyctype #7 CTYPE_RTVEC*/
2115 case MELTOBMAG_RTVEC
:
2117 case MELTOBMAG_MAPRTVECS
:
2119 struct meltmaprtvecs_st
*src
= (struct meltmaprtvecs_st
*) p
;
2121 MELT_FORWARDED(src
->meltmap_aux
);
2122 if (!src
->entab
) break;
2123 siz
= melt_primtab
[src
->lenix
];
2125 if (melt_is_young (src
->entab
))
2127 struct entryrtvecmelt_st
* newtab
= ggc_alloc_vec_entryrtvecmelt_st (siz
);
2128 memcpy (newtab
, src
->entab
, siz
* sizeof (struct entryrtvecmelt_st
));
2129 src
->entab
= newtab
;
2130 } /*end if young entab */
2131 for (ix
= 0; ix
< siz
; ix
++)
2133 rtvec at
= src
->entab
[ix
].e_at
;
2134 if (!at
|| (void*) at
== (void*) HTAB_DELETED_ENTRY
)
2136 src
->entab
[ix
].e_va
= NULL
;
2138 } /*end if empty at */
2139 MELT_FORWARDED (src
->entab
[ix
].e_va
);
2141 }; /* end case MELTOBMAG_MAPRTVECS */
2143 /*gtyctype #8 CTYPE_RTX*/
2146 case MELTOBMAG_MAPRTXS
:
2148 struct meltmaprtxs_st
*src
= (struct meltmaprtxs_st
*) p
;
2150 MELT_FORWARDED(src
->meltmap_aux
);
2151 if (!src
->entab
) break;
2152 siz
= melt_primtab
[src
->lenix
];
2154 if (melt_is_young (src
->entab
))
2156 struct entryrtxmelt_st
* newtab
= ggc_alloc_vec_entryrtxmelt_st (siz
);
2157 memcpy (newtab
, src
->entab
, siz
* sizeof (struct entryrtxmelt_st
));
2158 src
->entab
= newtab
;
2159 } /*end if young entab */
2160 for (ix
= 0; ix
< siz
; ix
++)
2162 rtx at
= src
->entab
[ix
].e_at
;
2163 if (!at
|| (void*) at
== (void*) HTAB_DELETED_ENTRY
)
2165 src
->entab
[ix
].e_va
= NULL
;
2167 } /*end if empty at */
2168 MELT_FORWARDED (src
->entab
[ix
].e_va
);
2170 }; /* end case MELTOBMAG_MAPRTXS */
2172 /*gtyctype #9 CTYPE_TREE*/
2173 case MELTOBMAG_TREE
:
2175 case MELTOBMAG_MAPTREES
:
2177 struct meltmaptrees_st
*src
= (struct meltmaptrees_st
*) p
;
2179 MELT_FORWARDED(src
->meltmap_aux
);
2180 if (!src
->entab
) break;
2181 siz
= melt_primtab
[src
->lenix
];
2183 if (melt_is_young (src
->entab
))
2185 struct entrytreemelt_st
* newtab
= ggc_alloc_vec_entrytreemelt_st (siz
);
2186 memcpy (newtab
, src
->entab
, siz
* sizeof (struct entrytreemelt_st
));
2187 src
->entab
= newtab
;
2188 } /*end if young entab */
2189 for (ix
= 0; ix
< siz
; ix
++)
2191 tree at
= src
->entab
[ix
].e_at
;
2192 if (!at
|| (void*) at
== (void*) HTAB_DELETED_ENTRY
)
2194 src
->entab
[ix
].e_va
= NULL
;
2196 } /*end if empty at */
2197 MELT_FORWARDED (src
->entab
[ix
].e_va
);
2199 }; /* end case MELTOBMAG_MAPTREES */
2201 /* trailer generated by generate_runtypesupport_scanning */
2203 /* gcc_unreachable (); */
2204 melt_fatal_error ("melt melt_scanning GC: corrupted heap, p=%p omagic=%d\n",
2205 (void *) p
, (int) omagic
);
2207 } /* end of melt_scanning generated by generate_runtypesupport_scanning */
2209 /**end of code generated by generate_runtypesupport_scanning **/
2212 /** start of code generated by generate_runtypesupport_boxingfun **/
2213 /*gtyctype #1 CTYPE_BASIC_BLOCK*/
2216 meltgc_new_basicblock(meltobject_ptr_t discr_p
, basic_block val
) /*runtypesupport generated boxingfun*/
2218 MELT_ENTERFRAME (2, NULL
);
2219 #define resv meltfram__.mcfr_varptr[0]
2220 #define discrv meltfram__.mcfr_varptr[1]
2221 discrv
= (melt_ptr_t
) discr_p
;
2222 if (!discrv
) discrv
= MELT_PREDEF(DISCR_BASIC_BLOCK
);
2223 if (melt_magic_discr((melt_ptr_t
)discrv
) != MELTOBMAG_OBJECT
) goto end
;
2224 if (((meltobject_ptr_t
)(discrv
))->meltobj_magic
!= MELTOBMAG_BASICBLOCK
) goto end
;
2225 resv
= (melt_ptr_t
) meltgc_allocate (sizeof (struct meltbasicblock_st
), 0);
2226 ((struct meltbasicblock_st
*) (resv
))->discr
= (meltobject_ptr_t
)discrv
;
2227 ((struct meltbasicblock_st
*) (resv
))->val
= val
;
2230 return ((melt_ptr_t
)(resv
));
2233 } /* end generated boxingfun meltgc_new_basicblock */
2236 meltgc_basicblock_updatebox(melt_ptr_t box_p
, basic_block val
) /*generated updateboxfun */
2238 MELT_ENTERFRAME (1, NULL
);
2239 #define boxv meltfram__.mcfr_varptr[0]
2241 if (melt_magic_discr((melt_ptr_t
)boxv
) != MELTOBMAG_BASICBLOCK
) goto end
;
2242 if (((melt_ptr_t
) boxv
)->u_discr
2243 /* generated updatebox nonconst */
2244 == (meltobject_ptr_t
) MELT_PREDEF (DISCR_CONSTANT_BASIC_BLOCK
))
2246 ((struct meltbasicblock_st
*) (boxv
))->val
= val
;
2247 meltgc_touch ((melt_ptr_t
)boxv
);
2251 } /* end generated updateboxfun meltgc_basicblock_updatebox */
2253 /*gtyctype #2 CTYPE_BITMAP*/
2256 meltgc_new_bitmap(meltobject_ptr_t discr_p
, bitmap val
) /*runtypesupport generated boxingfun*/
2258 MELT_ENTERFRAME (2, NULL
);
2259 #define resv meltfram__.mcfr_varptr[0]
2260 #define discrv meltfram__.mcfr_varptr[1]
2261 discrv
= (melt_ptr_t
) discr_p
;
2262 if (!discrv
) discrv
= MELT_PREDEF(DISCR_BITMAP
);
2263 if (melt_magic_discr((melt_ptr_t
)discrv
) != MELTOBMAG_OBJECT
) goto end
;
2264 if (((meltobject_ptr_t
)(discrv
))->meltobj_magic
!= MELTOBMAG_BITMAP
) goto end
;
2265 resv
= (melt_ptr_t
) meltgc_allocate (sizeof (struct meltbitmap_st
), 0);
2266 ((struct meltbitmap_st
*) (resv
))->discr
= (meltobject_ptr_t
)discrv
;
2267 ((struct meltbitmap_st
*) (resv
))->val
= val
;
2270 return ((melt_ptr_t
)(resv
));
2273 } /* end generated boxingfun meltgc_new_bitmap */
2276 meltgc_bitmap_updatebox(melt_ptr_t box_p
, bitmap val
) /*generated updateboxfun */
2278 MELT_ENTERFRAME (1, NULL
);
2279 #define boxv meltfram__.mcfr_varptr[0]
2281 if (melt_magic_discr((melt_ptr_t
)boxv
) != MELTOBMAG_BITMAP
) goto end
;
2282 ((struct meltbitmap_st
*) (boxv
))->val
= val
;
2283 meltgc_touch ((melt_ptr_t
)boxv
);
2287 } /* end generated updateboxfun meltgc_bitmap_updatebox */
2289 /*gtyctype #3 CTYPE_EDGE*/
2292 meltgc_new_edge(meltobject_ptr_t discr_p
, edge val
) /*runtypesupport generated boxingfun*/
2294 MELT_ENTERFRAME (2, NULL
);
2295 #define resv meltfram__.mcfr_varptr[0]
2296 #define discrv meltfram__.mcfr_varptr[1]
2297 discrv
= (melt_ptr_t
) discr_p
;
2298 if (!discrv
) discrv
= MELT_PREDEF(DISCR_EDGE
);
2299 if (melt_magic_discr((melt_ptr_t
)discrv
) != MELTOBMAG_OBJECT
) goto end
;
2300 if (((meltobject_ptr_t
)(discrv
))->meltobj_magic
!= MELTOBMAG_EDGE
) goto end
;
2301 resv
= (melt_ptr_t
) meltgc_allocate (sizeof (struct meltedge_st
), 0);
2302 ((struct meltedge_st
*) (resv
))->discr
= (meltobject_ptr_t
)discrv
;
2303 ((struct meltedge_st
*) (resv
))->val
= val
;
2306 return ((melt_ptr_t
)(resv
));
2309 } /* end generated boxingfun meltgc_new_edge */
2312 meltgc_edge_updatebox(melt_ptr_t box_p
, edge val
) /*generated updateboxfun */
2314 MELT_ENTERFRAME (1, NULL
);
2315 #define boxv meltfram__.mcfr_varptr[0]
2317 if (melt_magic_discr((melt_ptr_t
)boxv
) != MELTOBMAG_EDGE
) goto end
;
2318 if (((melt_ptr_t
) boxv
)->u_discr
2319 /* generated updatebox nonconst */
2320 == (meltobject_ptr_t
) MELT_PREDEF (DISCR_CONSTANT_EDGE
))
2322 ((struct meltedge_st
*) (boxv
))->val
= val
;
2323 meltgc_touch ((melt_ptr_t
)boxv
);
2327 } /* end generated updateboxfun meltgc_edge_updatebox */
2329 /*gtyctype #4 CTYPE_GIMPLE*/
2332 meltgc_new_gimple(meltobject_ptr_t discr_p
, gimple val
) /*runtypesupport generated boxingfun*/
2334 MELT_ENTERFRAME (2, NULL
);
2335 #define resv meltfram__.mcfr_varptr[0]
2336 #define discrv meltfram__.mcfr_varptr[1]
2337 discrv
= (melt_ptr_t
) discr_p
;
2338 if (!discrv
) discrv
= MELT_PREDEF(DISCR_GIMPLE
);
2339 if (melt_magic_discr((melt_ptr_t
)discrv
) != MELTOBMAG_OBJECT
) goto end
;
2340 if (((meltobject_ptr_t
)(discrv
))->meltobj_magic
!= MELTOBMAG_GIMPLE
) goto end
;
2341 resv
= (melt_ptr_t
) meltgc_allocate (sizeof (struct meltgimple_st
), 0);
2342 ((struct meltgimple_st
*) (resv
))->discr
= (meltobject_ptr_t
)discrv
;
2343 ((struct meltgimple_st
*) (resv
))->val
= val
;
2346 return ((melt_ptr_t
)(resv
));
2349 } /* end generated boxingfun meltgc_new_gimple */
2352 meltgc_gimple_updatebox(melt_ptr_t box_p
, gimple val
) /*generated updateboxfun */
2354 MELT_ENTERFRAME (1, NULL
);
2355 #define boxv meltfram__.mcfr_varptr[0]
2357 if (melt_magic_discr((melt_ptr_t
)boxv
) != MELTOBMAG_GIMPLE
) goto end
;
2358 if (((melt_ptr_t
) boxv
)->u_discr
2359 /* generated updatebox nonconst */
2360 == (meltobject_ptr_t
) MELT_PREDEF (DISCR_CONSTANT_GIMPLE
))
2362 ((struct meltgimple_st
*) (boxv
))->val
= val
;
2363 meltgc_touch ((melt_ptr_t
)boxv
);
2367 } /* end generated updateboxfun meltgc_gimple_updatebox */
2369 /*gtyctype #5 CTYPE_GIMPLE_SEQ*/
2372 meltgc_new_gimpleseq(meltobject_ptr_t discr_p
, gimple_seq val
) /*runtypesupport generated boxingfun*/
2374 MELT_ENTERFRAME (2, NULL
);
2375 #define resv meltfram__.mcfr_varptr[0]
2376 #define discrv meltfram__.mcfr_varptr[1]
2377 discrv
= (melt_ptr_t
) discr_p
;
2378 if (!discrv
) discrv
= MELT_PREDEF(DISCR_GIMPLE_SEQ
);
2379 if (melt_magic_discr((melt_ptr_t
)discrv
) != MELTOBMAG_OBJECT
) goto end
;
2380 if (((meltobject_ptr_t
)(discrv
))->meltobj_magic
!= MELTOBMAG_GIMPLESEQ
) goto end
;
2381 resv
= (melt_ptr_t
) meltgc_allocate (sizeof (struct meltgimpleseq_st
), 0);
2382 ((struct meltgimpleseq_st
*) (resv
))->discr
= (meltobject_ptr_t
)discrv
;
2383 ((struct meltgimpleseq_st
*) (resv
))->val
= val
;
2386 return ((melt_ptr_t
)(resv
));
2389 } /* end generated boxingfun meltgc_new_gimpleseq */
2392 meltgc_gimpleseq_updatebox(melt_ptr_t box_p
, gimple_seq val
) /*generated updateboxfun */
2394 MELT_ENTERFRAME (1, NULL
);
2395 #define boxv meltfram__.mcfr_varptr[0]
2397 if (melt_magic_discr((melt_ptr_t
)boxv
) != MELTOBMAG_GIMPLESEQ
) goto end
;
2398 if (((melt_ptr_t
) boxv
)->u_discr
2399 /* generated updatebox nonconst */
2400 == (meltobject_ptr_t
) MELT_PREDEF (DISCR_CONSTANT_GIMPLE_SEQ
))
2402 ((struct meltgimpleseq_st
*) (boxv
))->val
= val
;
2403 meltgc_touch ((melt_ptr_t
)boxv
);
2407 } /* end generated updateboxfun meltgc_gimpleseq_updatebox */
2409 /*gtyctype #6 CTYPE_LOOP*/
2412 meltgc_new_loop(meltobject_ptr_t discr_p
, loop_p val
) /*runtypesupport generated boxingfun*/
2414 MELT_ENTERFRAME (2, NULL
);
2415 #define resv meltfram__.mcfr_varptr[0]
2416 #define discrv meltfram__.mcfr_varptr[1]
2417 discrv
= (melt_ptr_t
) discr_p
;
2418 if (!discrv
) discrv
= MELT_PREDEF(DISCR_LOOP
);
2419 if (melt_magic_discr((melt_ptr_t
)discrv
) != MELTOBMAG_OBJECT
) goto end
;
2420 if (((meltobject_ptr_t
)(discrv
))->meltobj_magic
!= MELTOBMAG_LOOP
) goto end
;
2421 resv
= (melt_ptr_t
) meltgc_allocate (sizeof (struct meltloop_st
), 0);
2422 ((struct meltloop_st
*) (resv
))->discr
= (meltobject_ptr_t
)discrv
;
2423 ((struct meltloop_st
*) (resv
))->val
= val
;
2426 return ((melt_ptr_t
)(resv
));
2429 } /* end generated boxingfun meltgc_new_loop */
2432 melt_loop_updatebox(melt_ptr_t box_p
, loop_p val
) /*generated updateboxfun */
2434 MELT_ENTERFRAME (1, NULL
);
2435 #define boxv meltfram__.mcfr_varptr[0]
2437 if (melt_magic_discr((melt_ptr_t
)boxv
) != MELTOBMAG_LOOP
) goto end
;
2438 if (((melt_ptr_t
) boxv
)->u_discr
2439 /* generated updatebox nonconst */
2440 == (meltobject_ptr_t
) MELT_PREDEF (DISCR_CONSTANT_LOOP
))
2442 ((struct meltloop_st
*) (boxv
))->val
= val
;
2443 meltgc_touch ((melt_ptr_t
)boxv
);
2447 } /* end generated updateboxfun melt_loop_updatebox */
2449 /*gtyctype #7 CTYPE_RTVEC*/
2452 meltgc_new_rtvec(meltobject_ptr_t discr_p
, rtvec val
) /*runtypesupport generated boxingfun*/
2454 MELT_ENTERFRAME (2, NULL
);
2455 #define resv meltfram__.mcfr_varptr[0]
2456 #define discrv meltfram__.mcfr_varptr[1]
2457 discrv
= (melt_ptr_t
) discr_p
;
2458 if (!discrv
) discrv
= MELT_PREDEF(DISCR_RTVEC
);
2459 if (melt_magic_discr((melt_ptr_t
)discrv
) != MELTOBMAG_OBJECT
) goto end
;
2460 if (((meltobject_ptr_t
)(discrv
))->meltobj_magic
!= MELTOBMAG_RTVEC
) goto end
;
2461 resv
= (melt_ptr_t
) meltgc_allocate (sizeof (struct meltrtvec_st
), 0);
2462 ((struct meltrtvec_st
*) (resv
))->discr
= (meltobject_ptr_t
)discrv
;
2463 ((struct meltrtvec_st
*) (resv
))->val
= val
;
2466 return ((melt_ptr_t
)(resv
));
2469 } /* end generated boxingfun meltgc_new_rtvec */
2472 meltgc_rtvec_updatebox(melt_ptr_t box_p
, rtvec val
) /*generated updateboxfun */
2474 MELT_ENTERFRAME (1, NULL
);
2475 #define boxv meltfram__.mcfr_varptr[0]
2477 if (melt_magic_discr((melt_ptr_t
)boxv
) != MELTOBMAG_RTVEC
) goto end
;
2478 ((struct meltrtvec_st
*) (boxv
))->val
= val
;
2479 meltgc_touch ((melt_ptr_t
)boxv
);
2483 } /* end generated updateboxfun meltgc_rtvec_updatebox */
2485 /*gtyctype #8 CTYPE_RTX*/
2488 meltgc_new_rtx(meltobject_ptr_t discr_p
, rtx val
) /*runtypesupport generated boxingfun*/
2490 MELT_ENTERFRAME (2, NULL
);
2491 #define resv meltfram__.mcfr_varptr[0]
2492 #define discrv meltfram__.mcfr_varptr[1]
2493 discrv
= (melt_ptr_t
) discr_p
;
2494 if (!discrv
) discrv
= MELT_PREDEF(DISCR_RTX
);
2495 if (melt_magic_discr((melt_ptr_t
)discrv
) != MELTOBMAG_OBJECT
) goto end
;
2496 if (((meltobject_ptr_t
)(discrv
))->meltobj_magic
!= MELTOBMAG_RTX
) goto end
;
2497 resv
= (melt_ptr_t
) meltgc_allocate (sizeof (struct meltrtx_st
), 0);
2498 ((struct meltrtx_st
*) (resv
))->discr
= (meltobject_ptr_t
)discrv
;
2499 ((struct meltrtx_st
*) (resv
))->val
= val
;
2502 return ((melt_ptr_t
)(resv
));
2505 } /* end generated boxingfun meltgc_new_rtx */
2508 meltgc_rtx_updatebox(melt_ptr_t box_p
, rtx val
) /*generated updateboxfun */
2510 MELT_ENTERFRAME (1, NULL
);
2511 #define boxv meltfram__.mcfr_varptr[0]
2513 if (melt_magic_discr((melt_ptr_t
)boxv
) != MELTOBMAG_RTX
) goto end
;
2514 ((struct meltrtx_st
*) (boxv
))->val
= val
;
2515 meltgc_touch ((melt_ptr_t
)boxv
);
2519 } /* end generated updateboxfun meltgc_rtx_updatebox */
2521 /*gtyctype #9 CTYPE_TREE*/
2524 meltgc_new_tree(meltobject_ptr_t discr_p
, tree val
) /*runtypesupport generated boxingfun*/
2526 MELT_ENTERFRAME (2, NULL
);
2527 #define resv meltfram__.mcfr_varptr[0]
2528 #define discrv meltfram__.mcfr_varptr[1]
2529 discrv
= (melt_ptr_t
) discr_p
;
2530 if (!discrv
) discrv
= MELT_PREDEF(DISCR_TREE
);
2531 if (melt_magic_discr((melt_ptr_t
)discrv
) != MELTOBMAG_OBJECT
) goto end
;
2532 if (((meltobject_ptr_t
)(discrv
))->meltobj_magic
!= MELTOBMAG_TREE
) goto end
;
2533 resv
= (melt_ptr_t
) meltgc_allocate (sizeof (struct melttree_st
), 0);
2534 ((struct melttree_st
*) (resv
))->discr
= (meltobject_ptr_t
)discrv
;
2535 ((struct melttree_st
*) (resv
))->val
= val
;
2538 return ((melt_ptr_t
)(resv
));
2541 } /* end generated boxingfun meltgc_new_tree */
2544 meltgc_tree_updatebox(melt_ptr_t box_p
, tree val
) /*generated updateboxfun */
2546 MELT_ENTERFRAME (1, NULL
);
2547 #define boxv meltfram__.mcfr_varptr[0]
2549 if (melt_magic_discr((melt_ptr_t
)boxv
) != MELTOBMAG_TREE
) goto end
;
2550 if (((melt_ptr_t
) boxv
)->u_discr
2551 /* generated updatebox nonconst */
2552 == (meltobject_ptr_t
) MELT_PREDEF (DISCR_CONSTANT_TREE
))
2554 ((struct melttree_st
*) (boxv
))->val
= val
;
2555 meltgc_touch ((melt_ptr_t
)boxv
);
2559 } /* end generated updateboxfun meltgc_tree_updatebox */
2562 /** end of code generated by generate_runtypesupport_boxingfun **/
2566 /** generated by generate_runtypesupport_cloning_fun **/
2567 /* generated cloning routine head */
2569 meltgc_clone_with_discriminant (melt_ptr_t srcval_p
, melt_ptr_t newdiscr_p
)
2571 unsigned srcmagic
= 0;
2572 unsigned newmagic
= 0;
2573 MELT_ENTERFRAME (5, NULL
);
2574 #define resv meltfram__.mcfr_varptr[0]
2575 #define srcvalv meltfram__.mcfr_varptr[1]
2576 #define newdiscrv meltfram__.mcfr_varptr[2]
2577 #define srcdiscrv meltfram__.mcfr_varptr[3]
2578 #define compv meltfram__.mcfr_varptr[4]
2580 newdiscrv
= newdiscr_p
;
2584 srcdiscrv
= (melt_ptr_t
) (((melt_ptr_t
)srcvalv
)->u_discr
);
2586 newdiscrv
= srcdiscrv
;
2587 if (melt_magic_discr((melt_ptr_t
)newdiscrv
) != MELTOBMAG_OBJECT
2588 || ((meltobject_ptr_t
)newdiscrv
)->obj_len
< MELTLENGTH_CLASS_DISCRIMINANT
)
2590 if (!melt_is_instance_of((melt_ptr_t
)newdiscrv
,
2591 MELT_PREDEF (CLASS_DISCRIMINANT
)))
2593 srcmagic
= melt_magic_discr ((melt_ptr_t
)srcvalv
);
2594 newmagic
= ((meltobject_ptr_t
)newdiscrv
)->meltobj_magic
;
2595 if (srcmagic
!= newmagic
)
2597 switch (srcmagic
) /* end cloning heeader */
2601 /*** cloning 9 GTY-ed ctypes ***/
2603 /*cloning gtyctype #1 CTYPE_BASIC_BLOCK */
2604 case MELTOBMAG_BASICBLOCK
: /* cloning boxed value CTYPE_BASIC_BLOCK */
2606 struct meltbasicblock_st
*src
= (struct meltbasicblock_st
*) srcvalv
;
2607 struct meltbasicblock_st
*dst
= (struct meltbasicblock_st
*) meltgc_allocate (sizeof(struct meltbasicblock_st
), 0);
2610 dst
->discr
= (meltobject_ptr_t
) newdiscrv
;
2611 resv
= (melt_ptr_t
) dst
;
2614 case MELTOBMAG_MAPBASICBLOCKS
: /* cloning map value CTYPE_BASIC_BLOCK */
2616 struct meltmapbasicblocks_st
*src
= (struct meltmapbasicblocks_st
*) srcvalv
;
2617 unsigned oldlen
= melt_primtab
[src
->lenix
];
2618 unsigned newlen
= 4*src
->count
/3 + 5;
2619 struct meltmapbasicblocks_st
*dst
=
2620 (struct meltmapbasicblocks_st
*) meltgc_raw_new_mappointers((meltobject_ptr_t
)newdiscrv
, newlen
);
2622 dst
->meltmap_aux
= src
->meltmap_aux
;
2624 for (ix
=0; ix
<oldlen
;
2627 melt_ptr_t curva
= src
->entab
[ix
].e_va
;
2628 basic_block curat
= src
->entab
[ix
].e_at
;
2629 if (curva
!= NULL
&& curat
!= (basic_block
) HTAB_DELETED_ENTRY
)
2630 meltgc_raw_put_mappointers((void*)dst
, (const void*)curat
, curva
);
2632 resv
= (melt_ptr_t
) dst
;
2635 /*cloning gtyctype #2 CTYPE_BITMAP */
2636 case MELTOBMAG_BITMAP
: /* cloning boxed value CTYPE_BITMAP */
2638 struct meltbitmap_st
*src
= (struct meltbitmap_st
*) srcvalv
;
2639 struct meltbitmap_st
*dst
= (struct meltbitmap_st
*) meltgc_allocate (sizeof(struct meltbitmap_st
), 0);
2642 dst
->discr
= (meltobject_ptr_t
) newdiscrv
;
2643 resv
= (melt_ptr_t
) dst
;
2646 case MELTOBMAG_MAPBITMAPS
: /* cloning map value CTYPE_BITMAP */
2648 struct meltmapbitmaps_st
*src
= (struct meltmapbitmaps_st
*) srcvalv
;
2649 unsigned oldlen
= melt_primtab
[src
->lenix
];
2650 unsigned newlen
= 4*src
->count
/3 + 5;
2651 struct meltmapbitmaps_st
*dst
=
2652 (struct meltmapbitmaps_st
*) meltgc_raw_new_mappointers((meltobject_ptr_t
)newdiscrv
, newlen
);
2654 dst
->meltmap_aux
= src
->meltmap_aux
;
2656 for (ix
=0; ix
<oldlen
;
2659 melt_ptr_t curva
= src
->entab
[ix
].e_va
;
2660 bitmap curat
= src
->entab
[ix
].e_at
;
2661 if (curva
!= NULL
&& curat
!= (bitmap
) HTAB_DELETED_ENTRY
)
2662 meltgc_raw_put_mappointers((void*)dst
, (const void*)curat
, curva
);
2664 resv
= (melt_ptr_t
) dst
;
2667 /*cloning gtyctype #3 CTYPE_EDGE */
2668 case MELTOBMAG_EDGE
: /* cloning boxed value CTYPE_EDGE */
2670 struct meltedge_st
*src
= (struct meltedge_st
*) srcvalv
;
2671 struct meltedge_st
*dst
= (struct meltedge_st
*) meltgc_allocate (sizeof(struct meltedge_st
), 0);
2674 dst
->discr
= (meltobject_ptr_t
) newdiscrv
;
2675 resv
= (melt_ptr_t
) dst
;
2678 case MELTOBMAG_MAPEDGES
: /* cloning map value CTYPE_EDGE */
2680 struct meltmapedges_st
*src
= (struct meltmapedges_st
*) srcvalv
;
2681 unsigned oldlen
= melt_primtab
[src
->lenix
];
2682 unsigned newlen
= 4*src
->count
/3 + 5;
2683 struct meltmapedges_st
*dst
=
2684 (struct meltmapedges_st
*) meltgc_raw_new_mappointers((meltobject_ptr_t
)newdiscrv
, newlen
);
2686 dst
->meltmap_aux
= src
->meltmap_aux
;
2688 for (ix
=0; ix
<oldlen
;
2691 melt_ptr_t curva
= src
->entab
[ix
].e_va
;
2692 edge curat
= src
->entab
[ix
].e_at
;
2693 if (curva
!= NULL
&& curat
!= (edge
) HTAB_DELETED_ENTRY
)
2694 meltgc_raw_put_mappointers((void*)dst
, (const void*)curat
, curva
);
2696 resv
= (melt_ptr_t
) dst
;
2699 /*cloning gtyctype #4 CTYPE_GIMPLE */
2700 case MELTOBMAG_GIMPLE
: /* cloning boxed value CTYPE_GIMPLE */
2702 struct meltgimple_st
*src
= (struct meltgimple_st
*) srcvalv
;
2703 struct meltgimple_st
*dst
= (struct meltgimple_st
*) meltgc_allocate (sizeof(struct meltgimple_st
), 0);
2706 dst
->discr
= (meltobject_ptr_t
) newdiscrv
;
2707 resv
= (melt_ptr_t
) dst
;
2710 case MELTOBMAG_MAPGIMPLES
: /* cloning map value CTYPE_GIMPLE */
2712 struct meltmapgimples_st
*src
= (struct meltmapgimples_st
*) srcvalv
;
2713 unsigned oldlen
= melt_primtab
[src
->lenix
];
2714 unsigned newlen
= 4*src
->count
/3 + 5;
2715 struct meltmapgimples_st
*dst
=
2716 (struct meltmapgimples_st
*) meltgc_raw_new_mappointers((meltobject_ptr_t
)newdiscrv
, newlen
);
2718 dst
->meltmap_aux
= src
->meltmap_aux
;
2720 for (ix
=0; ix
<oldlen
;
2723 melt_ptr_t curva
= src
->entab
[ix
].e_va
;
2724 gimple curat
= src
->entab
[ix
].e_at
;
2725 if (curva
!= NULL
&& curat
!= (gimple
) HTAB_DELETED_ENTRY
)
2726 meltgc_raw_put_mappointers((void*)dst
, (const void*)curat
, curva
);
2728 resv
= (melt_ptr_t
) dst
;
2731 /*cloning gtyctype #5 CTYPE_GIMPLE_SEQ */
2732 case MELTOBMAG_GIMPLESEQ
: /* cloning boxed value CTYPE_GIMPLE_SEQ */
2734 struct meltgimpleseq_st
*src
= (struct meltgimpleseq_st
*) srcvalv
;
2735 struct meltgimpleseq_st
*dst
= (struct meltgimpleseq_st
*) meltgc_allocate (sizeof(struct meltgimpleseq_st
), 0);
2738 dst
->discr
= (meltobject_ptr_t
) newdiscrv
;
2739 resv
= (melt_ptr_t
) dst
;
2742 case MELTOBMAG_MAPGIMPLESEQS
: /* cloning map value CTYPE_GIMPLE_SEQ */
2744 struct meltmapgimpleseqs_st
*src
= (struct meltmapgimpleseqs_st
*) srcvalv
;
2745 unsigned oldlen
= melt_primtab
[src
->lenix
];
2746 unsigned newlen
= 4*src
->count
/3 + 5;
2747 struct meltmapgimpleseqs_st
*dst
=
2748 (struct meltmapgimpleseqs_st
*) meltgc_raw_new_mappointers((meltobject_ptr_t
)newdiscrv
, newlen
);
2750 dst
->meltmap_aux
= src
->meltmap_aux
;
2752 for (ix
=0; ix
<oldlen
;
2755 melt_ptr_t curva
= src
->entab
[ix
].e_va
;
2756 gimple_seq curat
= src
->entab
[ix
].e_at
;
2757 if (curva
!= NULL
&& curat
!= (gimple_seq
) HTAB_DELETED_ENTRY
)
2758 meltgc_raw_put_mappointers((void*)dst
, (const void*)curat
, curva
);
2760 resv
= (melt_ptr_t
) dst
;
2763 /*cloning gtyctype #6 CTYPE_LOOP */
2764 case MELTOBMAG_LOOP
: /* cloning boxed value CTYPE_LOOP */
2766 struct meltloop_st
*src
= (struct meltloop_st
*) srcvalv
;
2767 struct meltloop_st
*dst
= (struct meltloop_st
*) meltgc_allocate (sizeof(struct meltloop_st
), 0);
2770 dst
->discr
= (meltobject_ptr_t
) newdiscrv
;
2771 resv
= (melt_ptr_t
) dst
;
2774 case MELTOBMAG_MAPLOOPS
: /* cloning map value CTYPE_LOOP */
2776 struct meltmaploops_st
*src
= (struct meltmaploops_st
*) srcvalv
;
2777 unsigned oldlen
= melt_primtab
[src
->lenix
];
2778 unsigned newlen
= 4*src
->count
/3 + 5;
2779 struct meltmaploops_st
*dst
=
2780 (struct meltmaploops_st
*) meltgc_raw_new_mappointers((meltobject_ptr_t
)newdiscrv
, newlen
);
2782 dst
->meltmap_aux
= src
->meltmap_aux
;
2784 for (ix
=0; ix
<oldlen
;
2787 melt_ptr_t curva
= src
->entab
[ix
].e_va
;
2788 loop_p curat
= src
->entab
[ix
].e_at
;
2789 if (curva
!= NULL
&& curat
!= (loop_p
) HTAB_DELETED_ENTRY
)
2790 meltgc_raw_put_mappointers((void*)dst
, (const void*)curat
, curva
);
2792 resv
= (melt_ptr_t
) dst
;
2795 /*cloning gtyctype #7 CTYPE_RTVEC */
2796 case MELTOBMAG_RTVEC
: /* cloning boxed value CTYPE_RTVEC */
2798 struct meltrtvec_st
*src
= (struct meltrtvec_st
*) srcvalv
;
2799 struct meltrtvec_st
*dst
= (struct meltrtvec_st
*) meltgc_allocate (sizeof(struct meltrtvec_st
), 0);
2802 dst
->discr
= (meltobject_ptr_t
) newdiscrv
;
2803 resv
= (melt_ptr_t
) dst
;
2806 case MELTOBMAG_MAPRTVECS
: /* cloning map value CTYPE_RTVEC */
2808 struct meltmaprtvecs_st
*src
= (struct meltmaprtvecs_st
*) srcvalv
;
2809 unsigned oldlen
= melt_primtab
[src
->lenix
];
2810 unsigned newlen
= 4*src
->count
/3 + 5;
2811 struct meltmaprtvecs_st
*dst
=
2812 (struct meltmaprtvecs_st
*) meltgc_raw_new_mappointers((meltobject_ptr_t
)newdiscrv
, newlen
);
2814 dst
->meltmap_aux
= src
->meltmap_aux
;
2816 for (ix
=0; ix
<oldlen
;
2819 melt_ptr_t curva
= src
->entab
[ix
].e_va
;
2820 rtvec curat
= src
->entab
[ix
].e_at
;
2821 if (curva
!= NULL
&& curat
!= (rtvec
) HTAB_DELETED_ENTRY
)
2822 meltgc_raw_put_mappointers((void*)dst
, (const void*)curat
, curva
);
2824 resv
= (melt_ptr_t
) dst
;
2827 /*cloning gtyctype #8 CTYPE_RTX */
2828 case MELTOBMAG_RTX
: /* cloning boxed value CTYPE_RTX */
2830 struct meltrtx_st
*src
= (struct meltrtx_st
*) srcvalv
;
2831 struct meltrtx_st
*dst
= (struct meltrtx_st
*) meltgc_allocate (sizeof(struct meltrtx_st
), 0);
2834 dst
->discr
= (meltobject_ptr_t
) newdiscrv
;
2835 resv
= (melt_ptr_t
) dst
;
2838 case MELTOBMAG_MAPRTXS
: /* cloning map value CTYPE_RTX */
2840 struct meltmaprtxs_st
*src
= (struct meltmaprtxs_st
*) srcvalv
;
2841 unsigned oldlen
= melt_primtab
[src
->lenix
];
2842 unsigned newlen
= 4*src
->count
/3 + 5;
2843 struct meltmaprtxs_st
*dst
=
2844 (struct meltmaprtxs_st
*) meltgc_raw_new_mappointers((meltobject_ptr_t
)newdiscrv
, newlen
);
2846 dst
->meltmap_aux
= src
->meltmap_aux
;
2848 for (ix
=0; ix
<oldlen
;
2851 melt_ptr_t curva
= src
->entab
[ix
].e_va
;
2852 rtx curat
= src
->entab
[ix
].e_at
;
2853 if (curva
!= NULL
&& curat
!= (rtx
) HTAB_DELETED_ENTRY
)
2854 meltgc_raw_put_mappointers((void*)dst
, (const void*)curat
, curva
);
2856 resv
= (melt_ptr_t
) dst
;
2859 /*cloning gtyctype #9 CTYPE_TREE */
2860 case MELTOBMAG_TREE
: /* cloning boxed value CTYPE_TREE */
2862 struct melttree_st
*src
= (struct melttree_st
*) srcvalv
;
2863 struct melttree_st
*dst
= (struct melttree_st
*) meltgc_allocate (sizeof(struct melttree_st
), 0);
2866 dst
->discr
= (meltobject_ptr_t
) newdiscrv
;
2867 resv
= (melt_ptr_t
) dst
;
2870 case MELTOBMAG_MAPTREES
: /* cloning map value CTYPE_TREE */
2872 struct meltmaptrees_st
*src
= (struct meltmaptrees_st
*) srcvalv
;
2873 unsigned oldlen
= melt_primtab
[src
->lenix
];
2874 unsigned newlen
= 4*src
->count
/3 + 5;
2875 struct meltmaptrees_st
*dst
=
2876 (struct meltmaptrees_st
*) meltgc_raw_new_mappointers((meltobject_ptr_t
)newdiscrv
, newlen
);
2878 dst
->meltmap_aux
= src
->meltmap_aux
;
2880 for (ix
=0; ix
<oldlen
;
2883 melt_ptr_t curva
= src
->entab
[ix
].e_va
;
2884 tree curat
= src
->entab
[ix
].e_at
;
2885 if (curva
!= NULL
&& curat
!= (tree
) HTAB_DELETED_ENTRY
)
2886 meltgc_raw_put_mappointers((void*)dst
, (const void*)curat
, curva
);
2888 resv
= (melt_ptr_t
) dst
;
2892 /******* cloning the 21 value descriptors *******/
2893 /** cloning value descriptor #1 VALDESC_BUCKETLONGS **/
2894 /*explicit cloning for VALDESC_BUCKETLONGS*/
2895 case MELTOBMAG_BUCKETLONGS
:
2897 struct meltbucketlongs_st
*src
= (struct meltbucketlongs_st
*) srcvalv
;
2898 struct meltbucketlongs_st
*dst
= NULL
;
2899 /* explicit clone chunk for VALDESC_BUCKETLONGS:*/
2900 /* cloning chunk from VALDESC_BUCKETLONGS in warmelt-base.melt */
2901 // in file warmelt-base.melt line 2887
2902 unsigned lnix
= src
->buckl_lenix
;
2903 unsigned len
= melt_primtab
[lnix
];
2904 unsigned cnt
= src
->buckl_ucount
;
2905 unsigned dstlen
= 0;
2907 gcc_assert (lnix
> 0);
2908 gcc_assert (len
> 0);
2909 gcc_assert (cnt
<= len
);
2910 dst
= (struct meltbucketlongs_st
*)
2911 meltgc_new_longsbucket ((meltobject_ptr_t
)newdiscrv
, cnt
+ cnt
/8 + 2);
2912 resv
= (melt_ptr_t
) dst
;
2913 dstlen
= melt_primtab
[dst
->buckl_lenix
];
2914 dst
->buckl_aux
= src
->buckl_aux
;
2915 dst
->buckl_xnum
= src
->buckl_xnum
;
2916 dst
->buckl_lenix
= src
->buckl_lenix
;
2920 dst
->buckl_entab
[ix
] = src
->buckl_entab
[ix
];
2925 dst
->buckl_entab
[ix
].ebl_at
= 0L;
2926 dst
->buckl_entab
[ix
].ebl_va
= NULL
;
2928 /* end clone chunk VALDESC_BUCKETLONGS */
2931 resv
= (melt_ptr_t
) dst
;
2934 /** cloning value descriptor #2 VALDESC_CLOSURE **/
2935 /*explicit cloning for VALDESC_CLOSURE*/
2936 case MELTOBMAG_CLOSURE
:
2938 struct meltclosure_st
*src
= (struct meltclosure_st
*) srcvalv
;
2939 struct meltclosure_st
*dst
= NULL
;
2940 /* explicit clone chunk for VALDESC_CLOSURE:*/
2941 /* cloning from VALDESC_CLOSURE in warmelt-base.melt*/
2942 // in file warmelt-base.melt line 2641
2943 unsigned nbval
= (int) src
->nbval
;
2945 = (struct meltclosure_st
*)meltgc_allocate (sizeof(struct meltclosure_st
),
2946 nbval
*sizeof(void*));
2947 resv
= (melt_ptr_t
) dst
;
2948 src
= (struct meltclosure_st
*)srcvalv
;
2949 dst
->discr
= (meltobject_ptr_t
)newdiscrv
;
2950 dst
->rout
= src
->rout
;
2951 for (unsigned ix
= 0;
2954 dst
->tabval
[ix
] = src
->tabval
[ix
];
2955 /* end cloning from VALDESC_CLOSURE */
2958 resv
= (melt_ptr_t
) dst
;
2961 /** cloning value descriptor #3 VALDESC_DECAY **/
2962 /*default cloning for VALDESC_DECAY*/
2963 case MELTOBMAG_DECAY
:
2965 struct meltdecay_st
*src
= (struct meltdecay_st
*) srcvalv
;
2966 struct meltdecay_st
*dst
=
2967 (struct meltdecay_st
*) meltgc_allocate (sizeof(struct meltdecay_st
), 0);
2969 dst
->discr
= (meltobject_ptr_t
)newdiscrv
;
2970 resv
= (melt_ptr_t
) dst
;
2973 /** cloning value descriptor #4 VALDESC_DOUBLE **/
2974 /*default cloning for VALDESC_DOUBLE*/
2975 case MELTOBMAG_DOUBLE
:
2977 struct meltdouble_st
*src
= (struct meltdouble_st
*) srcvalv
;
2978 struct meltdouble_st
*dst
=
2979 (struct meltdouble_st
*) meltgc_allocate (sizeof(struct meltdouble_st
), 0);
2981 dst
->discr
= (meltobject_ptr_t
)newdiscrv
;
2982 resv
= (melt_ptr_t
) dst
;
2985 /** cloning value descriptor #5 VALDESC_HOOK **/
2986 /*no cloning for VALDESC_HOOK*/
2987 case MELTOBMAG_HOOK
:
2989 /** cloning value descriptor #6 VALDESC_INT **/
2990 /*default cloning for VALDESC_INT*/
2993 struct meltint_st
*src
= (struct meltint_st
*) srcvalv
;
2994 struct meltint_st
*dst
=
2995 (struct meltint_st
*) meltgc_allocate (sizeof(struct meltint_st
), 0);
2997 dst
->discr
= (meltobject_ptr_t
)newdiscrv
;
2998 resv
= (melt_ptr_t
) dst
;
3001 /** cloning value descriptor #7 VALDESC_JSONOBJECT **/
3002 /*explicit cloning for VALDESC_JSONOBJECT*/
3003 case MELTOBMAG_JSONOBJECT
:
3005 struct meltjsonobject_st
*src
= (struct meltjsonobject_st
*) srcvalv
;
3006 struct meltjsonobject_st
*dst
= NULL
;
3007 /* explicit clone chunk for VALDESC_JSONOBJECT:*/
3008 /* cloning chunk from VALDESC_JSONOBJECT in warmelt-base.melt */
3009 // in file warmelt-base.melt line 3043
3010 unsigned srcsize
= src
->jsob_size
;
3011 dst
= (struct meltjsonobject_st
*)meltgc_allocate(sizeof(struct meltjsonobject_st
),
3012 srcsize
*sizeof(melt_jsonobentry_st
));
3013 dst
->discr
= (meltobject_ptr_t
)newdiscrv
;
3014 dst
->jsob_aux
= src
->jsob_aux
;
3015 for (unsigned ix
=0; ix
<srcsize
; ix
++)
3016 dst
->jsob_entab
[ix
] = src
->jsob_entab
[ix
];
3017 /* end cloning chunk VALDESC_JSONOBJECT */
3020 resv
= (melt_ptr_t
) dst
;
3023 /** cloning value descriptor #8 VALDESC_LIST **/
3024 /*explicit cloning for VALDESC_LIST*/
3025 case MELTOBMAG_LIST
:
3027 struct meltlist_st
*src
= (struct meltlist_st
*) srcvalv
;
3028 struct meltlist_st
*dst
= NULL
;
3029 /* explicit clone chunk for VALDESC_LIST:*/
3030 /* cloning from VALDESC_LIST in warmelt-base.melt */
3031 // in file warmelt-base.melt line 3269
3032 struct meltpair_st
* curpair
= NULL
;
3033 dst
= (struct meltlist_st
*) meltgc_new_list ((meltobject_ptr_t
)newdiscrv
);
3034 resv
= (melt_ptr_t
) dst
;
3035 src
= (struct meltlist_st
*) srcvalv
;
3036 for (curpair
= ((struct meltlist_st
*) src
)->first
;
3037 melt_magic_discr ((melt_ptr_t
) curpair
) == MELTOBMAG_PAIR
;
3038 curpair
= (struct meltpair_st
*) (curpair
->tl
))
3040 src
= (struct meltlist_st
*) srcvalv
;
3041 dst
= (struct meltlist_st
*) resv
;
3042 compv
= (melt_ptr_t
) curpair
;
3043 meltgc_append_list ((melt_ptr_t
) resv
, curpair
->hd
);
3044 /* copy, because GC might have moved values. */
3045 curpair
= (struct meltpair_st
*) compv
;
3046 src
= (struct meltlist_st
*) srcvalv
;
3047 dst
= (struct meltlist_st
*) resv
;
3049 /* end cloning from VALDESC_LIST */
3052 resv
= (melt_ptr_t
) dst
;
3055 /** cloning value descriptor #9 VALDESC_MAPOBJECTS **/
3056 /*explicit cloning for VALDESC_MAPOBJECTS*/
3057 case MELTOBMAG_MAPOBJECTS
:
3059 struct meltmapobjects_st
*src
= (struct meltmapobjects_st
*) srcvalv
;
3060 struct meltmapobjects_st
*dst
= NULL
;
3061 /* explicit clone chunk for VALDESC_MAPOBJECTS:*/
3062 /* cloning, from VALDESC_MAPOBJECTS in warmelt-base.melt */
3063 // in file warmelt-base.melt line 2281
3064 unsigned srccount
= src
->count
;
3065 unsigned srclen
= melt_primtab
[src
->lenix
];
3066 unsigned newlen
= 4*srccount
/3+4;
3067 dst
= (struct meltmapobjects_st
*)
3068 meltgc_new_mapobjects ((meltobject_ptr_t
)newdiscrv
, newlen
);
3069 resv
= (melt_ptr_t
) dst
;
3070 dst
->meltmap_hash
= melt_nonzerohash ();
3071 dst
->meltmap_aux
= src
->meltmap_aux
;
3072 for (unsigned srcix
= 0;
3076 meltobject_ptr_t curat
= NULL
;
3077 melt_ptr_t curva
= NULL
;
3078 src
= (struct meltmapobjects_st
*) srcvalv
;
3079 curat
= src
->entab
[srcix
].e_at
;
3080 curva
= src
->entab
[srcix
].e_va
;
3081 if (!curat
|| curat
== (meltobject_ptr_t
) HTAB_DELETED_ENTRY
3084 meltgc_put_mapobjects((meltmapobjects_ptr_t
)resv
, curat
, curva
);
3085 /* update the dst, since it could have moved */
3086 dst
= (struct meltmapobjects_st
*) resv
;
3087 } /* end cloning, from VALDESC_MAPOBJECTS */
3090 resv
= (melt_ptr_t
) dst
;
3093 /** cloning value descriptor #10 VALDESC_MAPSTRINGS **/
3094 /*explicit cloning for VALDESC_MAPSTRINGS*/
3095 case MELTOBMAG_MAPSTRINGS
:
3097 struct meltmapstrings_st
*src
= (struct meltmapstrings_st
*) srcvalv
;
3098 struct meltmapstrings_st
*dst
= NULL
;
3099 /* explicit clone chunk for VALDESC_MAPSTRINGS:*/
3100 /* cloning from VALDESC_MAPSTRINGS in warmelt-base.melt */
3101 // in file warmelt-base.melt line 2406
3102 unsigned srccount
= src
->count
;
3103 unsigned srclen
= melt_primtab
[src
->lenix
];
3104 unsigned newlen
= 4*srccount
/3+4;
3105 dst
= (struct meltmapstrings_st
*) meltgc_new_mapstrings ((meltobject_ptr_t
)newdiscrv
, newlen
);
3106 resv
= (melt_ptr_t
) dst
;
3107 dst
->meltmap_aux
= src
->meltmap_aux
;
3108 dst
->meltmap_hash
= melt_nonzerohash ();
3109 for (unsigned srcix
= 0;
3113 const char* curat
= NULL
;
3114 melt_ptr_t curva
= NULL
;
3115 src
= (struct meltmapstrings_st
*) srcvalv
;
3116 dst
= (struct meltmapstrings_st
*) resv
;
3117 curat
= src
->entab
[srcix
].e_at
;
3118 if (!curat
|| curat
== (const char*) HTAB_DELETED_ENTRY
|| !curat
[0])
3120 curva
= src
->entab
[srcix
].e_va
;
3123 meltgc_put_mapstrings (dst
, curat
, curva
);
3124 dst
= (struct meltmapstrings_st
*) resv
;
3126 /* end cloning from VALDESC_MAPSTRINGS */
3129 resv
= (melt_ptr_t
) dst
;
3132 /** cloning value descriptor #11 VALDESC_MIXBIGINT **/
3133 /*no cloning for VALDESC_MIXBIGINT*/
3134 case MELTOBMAG_MIXBIGINT
:
3136 /** cloning value descriptor #12 VALDESC_MIXINT **/
3137 /*default cloning for VALDESC_MIXINT*/
3138 case MELTOBMAG_MIXINT
:
3140 struct meltmixint_st
*src
= (struct meltmixint_st
*) srcvalv
;
3141 struct meltmixint_st
*dst
=
3142 (struct meltmixint_st
*) meltgc_allocate (sizeof(struct meltmixint_st
), 0);
3144 dst
->discr
= (meltobject_ptr_t
)newdiscrv
;
3145 resv
= (melt_ptr_t
) dst
;
3148 /** cloning value descriptor #13 VALDESC_MIXLOC **/
3149 /*default cloning for VALDESC_MIXLOC*/
3150 case MELTOBMAG_MIXLOC
:
3152 struct meltmixloc_st
*src
= (struct meltmixloc_st
*) srcvalv
;
3153 struct meltmixloc_st
*dst
=
3154 (struct meltmixloc_st
*) meltgc_allocate (sizeof(struct meltmixloc_st
), 0);
3156 dst
->discr
= (meltobject_ptr_t
)newdiscrv
;
3157 resv
= (melt_ptr_t
) dst
;
3160 /** cloning value descriptor #14 VALDESC_MULTIPLE **/
3161 /*explicit cloning for VALDESC_MULTIPLE*/
3162 case MELTOBMAG_MULTIPLE
:
3164 struct meltmultiple_st
*src
= (struct meltmultiple_st
*) srcvalv
;
3165 struct meltmultiple_st
*dst
= NULL
;
3166 /* explicit clone chunk for VALDESC_MULTIPLE:*/
3167 /* cloning from VALDESC_MULTIPLE in warmelt-base.melt */
3168 // in file warmelt-base.melt line 2560
3169 unsigned srclen
= src
->nbval
;
3171 (struct meltmultiple_st
*) meltgc_new_multiple ((meltobject_ptr_t
)newdiscrv
, srclen
);
3172 resv
= (melt_ptr_t
) dst
;
3173 src
= (struct meltmultiple_st
*) srcvalv
; /* could have moved */
3174 for (unsigned srcix
= 0;
3177 dst
->tabval
[srcix
] = src
->tabval
[srcix
];
3178 /* end cloning from VALDESC_MULTIPLE */
3181 resv
= (melt_ptr_t
) dst
;
3184 /** cloning value descriptor #15 VALDESC_OBJECT **/
3185 /*explicit cloning for VALDESC_OBJECT*/
3186 case MELTOBMAG_OBJECT
:
3188 struct meltobject_st
*src
= (struct meltobject_st
*) srcvalv
;
3189 struct meltobject_st
*dst
= NULL
;
3190 /* explicit clone chunk for VALDESC_OBJECT:*/
3191 /* cloning, from VALDESC_OBJECT */
3192 // in file warmelt-base.melt line 2144
3193 unsigned newlen
= 0;
3194 unsigned srclen
= src
->obj_len
;
3195 unsigned slotix
= 0;
3196 if (melt_is_subclass_of((meltobject_ptr_t
)srcdiscrv
,
3197 (meltobject_ptr_t
)newdiscrv
))
3200 melt_multiple_length ((melt_ptr_t
)
3201 (((meltobject_ptr_t
)newdiscrv
)->obj_vartab
[MELTFIELD_CLASS_FIELDS
]));
3202 gcc_assert (newlen
<= srclen
);
3203 dst
= meltgc_new_raw_object ((meltobject_ptr_t
)newdiscrv
, newlen
);
3207 dst
->obj_vartab
[slotix
] = src
->obj_vartab
[slotix
];
3208 dst
->obj_num
= src
->obj_num
;
3210 else if (melt_is_subclass_of((meltobject_ptr_t
)newdiscrv
,
3211 (meltobject_ptr_t
)srcdiscrv
))
3214 melt_multiple_length ((melt_ptr_t
)
3215 (((meltobject_ptr_t
)newdiscrv
)->obj_vartab
[MELTFIELD_CLASS_FIELDS
]));
3216 gcc_assert (newlen
>= srclen
);
3217 dst
= meltgc_new_raw_object ((meltobject_ptr_t
)newdiscrv
, newlen
);
3221 dst
->obj_vartab
[slotix
] = src
->obj_vartab
[slotix
];
3222 dst
->obj_num
= src
->obj_num
;
3225 /* for low level debugging with gdb, we may want to catch some clone operations */
3226 if (melt_alptr_1
&& (void*) src
== melt_alptr_1
)
3227 melt_break_alptr_1 ("cloneobj src=alptr1");
3228 if (melt_alptr_2
&& (void*) src
== melt_alptr_2
)
3229 melt_break_alptr_2 ("cloneobj src=alptr2");
3230 if (src
->obj_hash
== melt_objhash_1
)
3231 melt_break_objhash_1("cloneobj src with objhash1");
3232 if (src
->obj_hash
== melt_objhash_2
)
3233 melt_break_objhash_2("cloneobj src with objhash2");
3234 #endif /* ENABLE_CHECKING */
3237 resv
= (melt_ptr_t
) dst
;
3240 /** cloning value descriptor #16 VALDESC_PAIR **/
3241 /*default cloning for VALDESC_PAIR*/
3242 case MELTOBMAG_PAIR
:
3244 struct meltpair_st
*src
= (struct meltpair_st
*) srcvalv
;
3245 struct meltpair_st
*dst
=
3246 (struct meltpair_st
*) meltgc_allocate (sizeof(struct meltpair_st
), 0);
3248 dst
->discr
= (meltobject_ptr_t
)newdiscrv
;
3249 resv
= (melt_ptr_t
) dst
;
3252 /** cloning value descriptor #17 VALDESC_REAL **/
3253 /*default cloning for VALDESC_REAL*/
3254 case MELTOBMAG_REAL
:
3256 struct meltreal_st
*src
= (struct meltreal_st
*) srcvalv
;
3257 struct meltreal_st
*dst
=
3258 (struct meltreal_st
*) meltgc_allocate (sizeof(struct meltreal_st
), 0);
3260 dst
->discr
= (meltobject_ptr_t
)newdiscrv
;
3261 resv
= (melt_ptr_t
) dst
;
3264 /** cloning value descriptor #18 VALDESC_ROUTINE **/
3265 /*no cloning for VALDESC_ROUTINE*/
3266 case MELTOBMAG_ROUTINE
:
3268 /** cloning value descriptor #19 VALDESC_SPECIAL_DATA **/
3269 /*no cloning for VALDESC_SPECIAL_DATA*/
3270 case MELTOBMAG_SPECIAL_DATA
:
3272 /** cloning value descriptor #20 VALDESC_STRBUF **/
3273 /*explicit cloning for VALDESC_STRBUF*/
3274 case MELTOBMAG_STRBUF
:
3276 struct meltstrbuf_st
*src
= (struct meltstrbuf_st
*) srcvalv
;
3277 struct meltstrbuf_st
*dst
= NULL
;
3278 /* explicit clone chunk for VALDESC_STRBUF:*/
3279 /* clone chunk from VALDESC_STRBUF in warmelt-base.melt */
3280 // in file warmelt-base.melt line 3177
3281 dst
= (struct meltstrbuf_st
*)
3282 meltgc_new_strbuf ((meltobject_ptr_t
)newdiscrv
, NULL
);
3283 resv
= (melt_ptr_t
) dst
;
3284 src
= (struct meltstrbuf_st
*)srcvalv
;
3285 meltgc_add_strbuf ((melt_ptr_t
) dst
, melt_strbuf_str ((melt_ptr_t
)src
));
3286 /* end clone chunk from VALDESC_STRBUF */
3289 resv
= (melt_ptr_t
) dst
;
3292 /** cloning value descriptor #21 VALDESC_STRING **/
3293 /*explicit cloning for VALDESC_STRING*/
3294 case MELTOBMAG_STRING
:
3296 struct meltstring_st
*src
= (struct meltstring_st
*) srcvalv
;
3297 struct meltstring_st
*dst
= NULL
;
3298 /* explicit clone chunk for VALDESC_STRING:*/
3299 /* clone from VALDESC_STRING file warmelt-base.melt */
3300 // in file warmelt-base.melt line 3114
3301 dst
= (struct meltstring_st
*)
3302 meltgc_new_stringdup ((meltobject_ptr_t
)newdiscrv
,
3304 resv
= (melt_ptr_t
) dst
;
3305 /* end clone from VALDESC_STRING */
3308 resv
= (melt_ptr_t
) dst
;
3312 /* generated cloning routine trailer */
3315 } /*end switch srcmagic for cloning */
3318 return (melt_ptr_t
) resv
;
3319 } /* end of generated meltgc_clone_with_discriminant */
3327 /*code generated by generate_runtypesupport_predefined_hooks for 161 predefined */
3440 /*predefined hook definition HOOK_ALL_IPA_PASSES_END #112*/
3441 void melthookproc_HOOK_ALL_IPA_PASSES_END()
3443 /* code emitted by generate_runtypesupport_predefined_hooks for HOOK_ALL_IPA_PASSES_END*/
3444 #ifndef MELT_SKIP_HOOK_PREDEFINED_CODE
3445 melthook_ptr_t melthkp
= (melthook_ptr_t
) MELT_PREDEF (HOOK_ALL_IPA_PASSES_END
);
3446 typedef void melthooksig_HOOK_ALL_IPA_PASSES_END_t (melt_ptr_t
);
3448 melt_assertmsg (" check predefhook HOOK_ALL_IPA_PASSES_END exists",
3450 /*checkhook ishook*/
3451 melt_assertmsg (" check predefhook HOOK_ALL_IPA_PASSES_END is hook",
3452 melt_magic_discr ((melt_ptr_t
) melthkp
) == MELTOBMAG_HOOK
);
3453 /* check hook routine HOOK_ALL_IPA_PASSES_END */
3454 melthooksig_HOOK_ALL_IPA_PASSES_END_t
*melthookptr_HOOK_ALL_IPA_PASSES_END
=
3455 reinterpret_cast <melthooksig_HOOK_ALL_IPA_PASSES_END_t
*>
3457 melt_assertmsg("check predefhook routine HOOK_ALL_IPA_PASSES_END",
3458 melthookptr_HOOK_ALL_IPA_PASSES_END
);
3460 /* check predefhook HOOK_ALL_IPA_PASSES_END name */
3461 melt_assertmsg("check predefhook name HOOK_ALL_IPA_PASSES_END",
3462 !strncmp (melthkp
->hookname
,
3463 "HOOK_ALL_IPA_PASSES_END", MELT_HOOKNAME_LEN
-1));
3464 return (*melthookptr_HOOK_ALL_IPA_PASSES_END
) ((melt_ptr_t
)melthkp
);
3465 #endif /* MELT_SKIP_HOOK_PREDEFINED_CODE */
3466 } /* end melthookproc_HOOK_ALL_IPA_PASSES_END */
3470 /*predefined hook definition HOOK_ALL_IPA_PASSES_START #113*/
3471 void melthookproc_HOOK_ALL_IPA_PASSES_START()
3473 /* code emitted by generate_runtypesupport_predefined_hooks for HOOK_ALL_IPA_PASSES_START*/
3474 #ifndef MELT_SKIP_HOOK_PREDEFINED_CODE
3475 melthook_ptr_t melthkp
= (melthook_ptr_t
) MELT_PREDEF (HOOK_ALL_IPA_PASSES_START
);
3476 typedef void melthooksig_HOOK_ALL_IPA_PASSES_START_t (melt_ptr_t
);
3478 melt_assertmsg (" check predefhook HOOK_ALL_IPA_PASSES_START exists",
3480 /*checkhook ishook*/
3481 melt_assertmsg (" check predefhook HOOK_ALL_IPA_PASSES_START is hook",
3482 melt_magic_discr ((melt_ptr_t
) melthkp
) == MELTOBMAG_HOOK
);
3483 /* check hook routine HOOK_ALL_IPA_PASSES_START */
3484 melthooksig_HOOK_ALL_IPA_PASSES_START_t
*melthookptr_HOOK_ALL_IPA_PASSES_START
=
3485 reinterpret_cast <melthooksig_HOOK_ALL_IPA_PASSES_START_t
*>
3487 melt_assertmsg("check predefhook routine HOOK_ALL_IPA_PASSES_START",
3488 melthookptr_HOOK_ALL_IPA_PASSES_START
);
3490 /* check predefhook HOOK_ALL_IPA_PASSES_START name */
3491 melt_assertmsg("check predefhook name HOOK_ALL_IPA_PASSES_START",
3492 !strncmp (melthkp
->hookname
,
3493 "HOOK_ALL_IPA_PASSES_START", MELT_HOOKNAME_LEN
-1));
3494 return (*melthookptr_HOOK_ALL_IPA_PASSES_START
) ((melt_ptr_t
)melthkp
);
3495 #endif /* MELT_SKIP_HOOK_PREDEFINED_CODE */
3496 } /* end melthookproc_HOOK_ALL_IPA_PASSES_START */
3500 /*predefined hook definition HOOK_ALL_PASSES_END #114*/
3501 void melthookproc_HOOK_ALL_PASSES_END()
3503 /* code emitted by generate_runtypesupport_predefined_hooks for HOOK_ALL_PASSES_END*/
3504 #ifndef MELT_SKIP_HOOK_PREDEFINED_CODE
3505 melthook_ptr_t melthkp
= (melthook_ptr_t
) MELT_PREDEF (HOOK_ALL_PASSES_END
);
3506 typedef void melthooksig_HOOK_ALL_PASSES_END_t (melt_ptr_t
);
3508 melt_assertmsg (" check predefhook HOOK_ALL_PASSES_END exists",
3510 /*checkhook ishook*/
3511 melt_assertmsg (" check predefhook HOOK_ALL_PASSES_END is hook",
3512 melt_magic_discr ((melt_ptr_t
) melthkp
) == MELTOBMAG_HOOK
);
3513 /* check hook routine HOOK_ALL_PASSES_END */
3514 melthooksig_HOOK_ALL_PASSES_END_t
*melthookptr_HOOK_ALL_PASSES_END
=
3515 reinterpret_cast <melthooksig_HOOK_ALL_PASSES_END_t
*>
3517 melt_assertmsg("check predefhook routine HOOK_ALL_PASSES_END",
3518 melthookptr_HOOK_ALL_PASSES_END
);
3520 /* check predefhook HOOK_ALL_PASSES_END name */
3521 melt_assertmsg("check predefhook name HOOK_ALL_PASSES_END",
3522 !strncmp (melthkp
->hookname
,
3523 "HOOK_ALL_PASSES_END", MELT_HOOKNAME_LEN
-1));
3524 return (*melthookptr_HOOK_ALL_PASSES_END
) ((melt_ptr_t
)melthkp
);
3525 #endif /* MELT_SKIP_HOOK_PREDEFINED_CODE */
3526 } /* end melthookproc_HOOK_ALL_PASSES_END */
3530 /*predefined hook definition HOOK_ALL_PASSES_START #115*/
3531 void melthookproc_HOOK_ALL_PASSES_START()
3533 /* code emitted by generate_runtypesupport_predefined_hooks for HOOK_ALL_PASSES_START*/
3534 #ifndef MELT_SKIP_HOOK_PREDEFINED_CODE
3535 melthook_ptr_t melthkp
= (melthook_ptr_t
) MELT_PREDEF (HOOK_ALL_PASSES_START
);
3536 typedef void melthooksig_HOOK_ALL_PASSES_START_t (melt_ptr_t
);
3538 melt_assertmsg (" check predefhook HOOK_ALL_PASSES_START exists",
3540 /*checkhook ishook*/
3541 melt_assertmsg (" check predefhook HOOK_ALL_PASSES_START is hook",
3542 melt_magic_discr ((melt_ptr_t
) melthkp
) == MELTOBMAG_HOOK
);
3543 /* check hook routine HOOK_ALL_PASSES_START */
3544 melthooksig_HOOK_ALL_PASSES_START_t
*melthookptr_HOOK_ALL_PASSES_START
=
3545 reinterpret_cast <melthooksig_HOOK_ALL_PASSES_START_t
*>
3547 melt_assertmsg("check predefhook routine HOOK_ALL_PASSES_START",
3548 melthookptr_HOOK_ALL_PASSES_START
);
3550 /* check predefhook HOOK_ALL_PASSES_START name */
3551 melt_assertmsg("check predefhook name HOOK_ALL_PASSES_START",
3552 !strncmp (melthkp
->hookname
,
3553 "HOOK_ALL_PASSES_START", MELT_HOOKNAME_LEN
-1));
3554 return (*melthookptr_HOOK_ALL_PASSES_START
) ((melt_ptr_t
)melthkp
);
3555 #endif /* MELT_SKIP_HOOK_PREDEFINED_CODE */
3556 } /* end melthookproc_HOOK_ALL_PASSES_START */
3560 /*predefined hook definition HOOK_EARLY_GIMPLE_PASSES_END #116*/
3561 void melthookproc_HOOK_EARLY_GIMPLE_PASSES_END()
3563 /* code emitted by generate_runtypesupport_predefined_hooks for HOOK_EARLY_GIMPLE_PASSES_END*/
3564 #ifndef MELT_SKIP_HOOK_PREDEFINED_CODE
3565 melthook_ptr_t melthkp
= (melthook_ptr_t
) MELT_PREDEF (HOOK_EARLY_GIMPLE_PASSES_END
);
3566 typedef void melthooksig_HOOK_EARLY_GIMPLE_PASSES_END_t (melt_ptr_t
);
3568 melt_assertmsg (" check predefhook HOOK_EARLY_GIMPLE_PASSES_END exists",
3570 /*checkhook ishook*/
3571 melt_assertmsg (" check predefhook HOOK_EARLY_GIMPLE_PASSES_END is hook",
3572 melt_magic_discr ((melt_ptr_t
) melthkp
) == MELTOBMAG_HOOK
);
3573 /* check hook routine HOOK_EARLY_GIMPLE_PASSES_END */
3574 melthooksig_HOOK_EARLY_GIMPLE_PASSES_END_t
*melthookptr_HOOK_EARLY_GIMPLE_PASSES_END
=
3575 reinterpret_cast <melthooksig_HOOK_EARLY_GIMPLE_PASSES_END_t
*>
3577 melt_assertmsg("check predefhook routine HOOK_EARLY_GIMPLE_PASSES_END",
3578 melthookptr_HOOK_EARLY_GIMPLE_PASSES_END
);
3580 /* check predefhook HOOK_EARLY_GIMPLE_PASSES_END name */
3581 melt_assertmsg("check predefhook name HOOK_EARLY_GIMPLE_PASSES_END",
3582 !strncmp (melthkp
->hookname
,
3583 "HOOK_EARLY_GIMPLE_PASSES_END", MELT_HOOKNAME_LEN
-1));
3584 return (*melthookptr_HOOK_EARLY_GIMPLE_PASSES_END
) ((melt_ptr_t
)melthkp
);
3585 #endif /* MELT_SKIP_HOOK_PREDEFINED_CODE */
3586 } /* end melthookproc_HOOK_EARLY_GIMPLE_PASSES_END */
3590 /*predefined hook definition HOOK_EARLY_GIMPLE_PASSES_START #117*/
3591 void melthookproc_HOOK_EARLY_GIMPLE_PASSES_START()
3593 /* code emitted by generate_runtypesupport_predefined_hooks for HOOK_EARLY_GIMPLE_PASSES_START*/
3594 #ifndef MELT_SKIP_HOOK_PREDEFINED_CODE
3595 melthook_ptr_t melthkp
= (melthook_ptr_t
) MELT_PREDEF (HOOK_EARLY_GIMPLE_PASSES_START
);
3596 typedef void melthooksig_HOOK_EARLY_GIMPLE_PASSES_START_t (melt_ptr_t
);
3598 melt_assertmsg (" check predefhook HOOK_EARLY_GIMPLE_PASSES_START exists",
3600 /*checkhook ishook*/
3601 melt_assertmsg (" check predefhook HOOK_EARLY_GIMPLE_PASSES_START is hook",
3602 melt_magic_discr ((melt_ptr_t
) melthkp
) == MELTOBMAG_HOOK
);
3603 /* check hook routine HOOK_EARLY_GIMPLE_PASSES_START */
3604 melthooksig_HOOK_EARLY_GIMPLE_PASSES_START_t
*melthookptr_HOOK_EARLY_GIMPLE_PASSES_START
=
3605 reinterpret_cast <melthooksig_HOOK_EARLY_GIMPLE_PASSES_START_t
*>
3607 melt_assertmsg("check predefhook routine HOOK_EARLY_GIMPLE_PASSES_START",
3608 melthookptr_HOOK_EARLY_GIMPLE_PASSES_START
);
3610 /* check predefhook HOOK_EARLY_GIMPLE_PASSES_START name */
3611 melt_assertmsg("check predefhook name HOOK_EARLY_GIMPLE_PASSES_START",
3612 !strncmp (melthkp
->hookname
,
3613 "HOOK_EARLY_GIMPLE_PASSES_START", MELT_HOOKNAME_LEN
-1));
3614 return (*melthookptr_HOOK_EARLY_GIMPLE_PASSES_START
) ((melt_ptr_t
)melthkp
);
3615 #endif /* MELT_SKIP_HOOK_PREDEFINED_CODE */
3616 } /* end melthookproc_HOOK_EARLY_GIMPLE_PASSES_START */
3620 /*predefined hook definition HOOK_EXIT_FINALIZER #118*/
3621 void melthookproc_HOOK_EXIT_FINALIZER()
3623 /* code emitted by generate_runtypesupport_predefined_hooks for HOOK_EXIT_FINALIZER*/
3624 #ifndef MELT_SKIP_HOOK_PREDEFINED_CODE
3625 melthook_ptr_t melthkp
= (melthook_ptr_t
) MELT_PREDEF (HOOK_EXIT_FINALIZER
);
3626 typedef void melthooksig_HOOK_EXIT_FINALIZER_t (melt_ptr_t
);
3628 melt_assertmsg (" check predefhook HOOK_EXIT_FINALIZER exists",
3630 /*checkhook ishook*/
3631 melt_assertmsg (" check predefhook HOOK_EXIT_FINALIZER is hook",
3632 melt_magic_discr ((melt_ptr_t
) melthkp
) == MELTOBMAG_HOOK
);
3633 /* check hook routine HOOK_EXIT_FINALIZER */
3634 melthooksig_HOOK_EXIT_FINALIZER_t
*melthookptr_HOOK_EXIT_FINALIZER
=
3635 reinterpret_cast <melthooksig_HOOK_EXIT_FINALIZER_t
*>
3637 melt_assertmsg("check predefhook routine HOOK_EXIT_FINALIZER",
3638 melthookptr_HOOK_EXIT_FINALIZER
);
3640 /* check predefhook HOOK_EXIT_FINALIZER name */
3641 melt_assertmsg("check predefhook name HOOK_EXIT_FINALIZER",
3642 !strncmp (melthkp
->hookname
,
3643 "HOOK_EXIT_FINALIZER", MELT_HOOKNAME_LEN
-1));
3644 return (*melthookptr_HOOK_EXIT_FINALIZER
) ((melt_ptr_t
)melthkp
);
3645 #endif /* MELT_SKIP_HOOK_PREDEFINED_CODE */
3646 } /* end melthookproc_HOOK_EXIT_FINALIZER */
3650 /*predefined hook definition HOOK_FINISH_DECL #119*/
3651 void melthookproc_HOOK_FINISH_DECL(tree meltin_TFNDECL_p0
)
3653 /* code emitted by generate_runtypesupport_predefined_hooks for HOOK_FINISH_DECL*/
3654 #ifndef MELT_SKIP_HOOK_PREDEFINED_CODE
3655 melthook_ptr_t melthkp
= (melthook_ptr_t
) MELT_PREDEF (HOOK_FINISH_DECL
);
3656 typedef void melthooksig_HOOK_FINISH_DECL_t (melt_ptr_t
, tree
);
3658 melt_assertmsg (" check predefhook HOOK_FINISH_DECL exists",
3660 /*checkhook ishook*/
3661 melt_assertmsg (" check predefhook HOOK_FINISH_DECL is hook",
3662 melt_magic_discr ((melt_ptr_t
) melthkp
) == MELTOBMAG_HOOK
);
3663 /* check hook routine HOOK_FINISH_DECL */
3664 melthooksig_HOOK_FINISH_DECL_t
*melthookptr_HOOK_FINISH_DECL
=
3665 reinterpret_cast <melthooksig_HOOK_FINISH_DECL_t
*>
3667 melt_assertmsg("check predefhook routine HOOK_FINISH_DECL",
3668 melthookptr_HOOK_FINISH_DECL
);
3670 /* check predefhook HOOK_FINISH_DECL name */
3671 melt_assertmsg("check predefhook name HOOK_FINISH_DECL",
3672 !strncmp (melthkp
->hookname
,
3673 "HOOK_FINISH_DECL", MELT_HOOKNAME_LEN
-1));
3674 return (*melthookptr_HOOK_FINISH_DECL
) ((melt_ptr_t
)melthkp
,
3676 #endif /* MELT_SKIP_HOOK_PREDEFINED_CODE */
3677 } /* end melthookproc_HOOK_FINISH_DECL */
3681 /*predefined hook definition HOOK_FINISH_TYPE #120*/
3682 void melthookproc_HOOK_FINISH_TYPE(tree meltin_TFNDECL_p0
)
3684 /* code emitted by generate_runtypesupport_predefined_hooks for HOOK_FINISH_TYPE*/
3685 #ifndef MELT_SKIP_HOOK_PREDEFINED_CODE
3686 melthook_ptr_t melthkp
= (melthook_ptr_t
) MELT_PREDEF (HOOK_FINISH_TYPE
);
3687 typedef void melthooksig_HOOK_FINISH_TYPE_t (melt_ptr_t
, tree
);
3689 melt_assertmsg (" check predefhook HOOK_FINISH_TYPE exists",
3691 /*checkhook ishook*/
3692 melt_assertmsg (" check predefhook HOOK_FINISH_TYPE is hook",
3693 melt_magic_discr ((melt_ptr_t
) melthkp
) == MELTOBMAG_HOOK
);
3694 /* check hook routine HOOK_FINISH_TYPE */
3695 melthooksig_HOOK_FINISH_TYPE_t
*melthookptr_HOOK_FINISH_TYPE
=
3696 reinterpret_cast <melthooksig_HOOK_FINISH_TYPE_t
*>
3698 melt_assertmsg("check predefhook routine HOOK_FINISH_TYPE",
3699 melthookptr_HOOK_FINISH_TYPE
);
3701 /* check predefhook HOOK_FINISH_TYPE name */
3702 melt_assertmsg("check predefhook name HOOK_FINISH_TYPE",
3703 !strncmp (melthkp
->hookname
,
3704 "HOOK_FINISH_TYPE", MELT_HOOKNAME_LEN
-1));
3705 return (*melthookptr_HOOK_FINISH_TYPE
) ((melt_ptr_t
)melthkp
,
3707 #endif /* MELT_SKIP_HOOK_PREDEFINED_CODE */
3708 } /* end melthookproc_HOOK_FINISH_TYPE */
3712 /*predefined hook definition HOOK_FINISH_UNIT #121*/
3713 void melthookproc_HOOK_FINISH_UNIT()
3715 /* code emitted by generate_runtypesupport_predefined_hooks for HOOK_FINISH_UNIT*/
3716 #ifndef MELT_SKIP_HOOK_PREDEFINED_CODE
3717 melthook_ptr_t melthkp
= (melthook_ptr_t
) MELT_PREDEF (HOOK_FINISH_UNIT
);
3718 typedef void melthooksig_HOOK_FINISH_UNIT_t (melt_ptr_t
);
3720 melt_assertmsg (" check predefhook HOOK_FINISH_UNIT exists",
3722 /*checkhook ishook*/
3723 melt_assertmsg (" check predefhook HOOK_FINISH_UNIT is hook",
3724 melt_magic_discr ((melt_ptr_t
) melthkp
) == MELTOBMAG_HOOK
);
3725 /* check hook routine HOOK_FINISH_UNIT */
3726 melthooksig_HOOK_FINISH_UNIT_t
*melthookptr_HOOK_FINISH_UNIT
=
3727 reinterpret_cast <melthooksig_HOOK_FINISH_UNIT_t
*>
3729 melt_assertmsg("check predefhook routine HOOK_FINISH_UNIT",
3730 melthookptr_HOOK_FINISH_UNIT
);
3732 /* check predefhook HOOK_FINISH_UNIT name */
3733 melt_assertmsg("check predefhook name HOOK_FINISH_UNIT",
3734 !strncmp (melthkp
->hookname
,
3735 "HOOK_FINISH_UNIT", MELT_HOOKNAME_LEN
-1));
3736 return (*melthookptr_HOOK_FINISH_UNIT
) ((melt_ptr_t
)melthkp
);
3737 #endif /* MELT_SKIP_HOOK_PREDEFINED_CODE */
3738 } /* end melthookproc_HOOK_FINISH_UNIT */
3742 /*predefined hook definition HOOK_FRESH_ENVIRONMENT_REFERENCE_MAKER #122*/
3743 melt_ptr_t
melthookproc_HOOK_FRESH_ENVIRONMENT_REFERENCE_MAKER(melt_ptr_t meltin_PREVENV_p0
, const char* meltin_MODULNAME_p1
)
3745 /* code emitted by generate_runtypesupport_predefined_hooks for HOOK_FRESH_ENVIRONMENT_REFERENCE_MAKER*/
3746 #ifndef MELT_SKIP_HOOK_PREDEFINED_CODE
3747 melthook_ptr_t melthkp
= (melthook_ptr_t
) MELT_PREDEF (HOOK_FRESH_ENVIRONMENT_REFERENCE_MAKER
);
3748 typedef melt_ptr_t
melthooksig_HOOK_FRESH_ENVIRONMENT_REFERENCE_MAKER_t (melt_ptr_t
, melt_ptr_t
, const char*);
3750 melt_assertmsg (" check predefhook HOOK_FRESH_ENVIRONMENT_REFERENCE_MAKER exists",
3752 /*checkhook ishook*/
3753 melt_assertmsg (" check predefhook HOOK_FRESH_ENVIRONMENT_REFERENCE_MAKER is hook",
3754 melt_magic_discr ((melt_ptr_t
) melthkp
) == MELTOBMAG_HOOK
);
3755 /* check hook routine HOOK_FRESH_ENVIRONMENT_REFERENCE_MAKER */
3756 melthooksig_HOOK_FRESH_ENVIRONMENT_REFERENCE_MAKER_t
*melthookptr_HOOK_FRESH_ENVIRONMENT_REFERENCE_MAKER
=
3757 reinterpret_cast <melthooksig_HOOK_FRESH_ENVIRONMENT_REFERENCE_MAKER_t
*>
3759 melt_assertmsg("check predefhook routine HOOK_FRESH_ENVIRONMENT_REFERENCE_MAKER",
3760 melthookptr_HOOK_FRESH_ENVIRONMENT_REFERENCE_MAKER
);
3762 /* check predefhook HOOK_FRESH_ENVIRONMENT_REFERENCE_MAKER name */
3763 melt_assertmsg("check predefhook name HOOK_FRESH_ENVIRONMENT_REFERENCE_MAKER",
3764 !strncmp (melthkp
->hookname
,
3765 "HOOK_FRESH_ENVIRONMENT_REFERENCE_MAKER", MELT_HOOKNAME_LEN
-1));
3766 return (*melthookptr_HOOK_FRESH_ENVIRONMENT_REFERENCE_MAKER
) ((melt_ptr_t
)melthkp
,
3768 meltin_MODULNAME_p1
);
3769 #endif /* MELT_SKIP_HOOK_PREDEFINED_CODE */
3770 } /* end melthookproc_HOOK_FRESH_ENVIRONMENT_REFERENCE_MAKER */
3774 /*predefined hook definition HOOK_GIMPLE_EXECUTE #123*/
3775 long melthookproc_HOOK_GIMPLE_EXECUTE()
3777 /* code emitted by generate_runtypesupport_predefined_hooks for HOOK_GIMPLE_EXECUTE*/
3778 #ifndef MELT_SKIP_HOOK_PREDEFINED_CODE
3779 melthook_ptr_t melthkp
= (melthook_ptr_t
) MELT_PREDEF (HOOK_GIMPLE_EXECUTE
);
3780 typedef long melthooksig_HOOK_GIMPLE_EXECUTE_t (melt_ptr_t
);
3782 melt_assertmsg (" check predefhook HOOK_GIMPLE_EXECUTE exists",
3784 /*checkhook ishook*/
3785 melt_assertmsg (" check predefhook HOOK_GIMPLE_EXECUTE is hook",
3786 melt_magic_discr ((melt_ptr_t
) melthkp
) == MELTOBMAG_HOOK
);
3787 /* check hook routine HOOK_GIMPLE_EXECUTE */
3788 melthooksig_HOOK_GIMPLE_EXECUTE_t
*melthookptr_HOOK_GIMPLE_EXECUTE
=
3789 reinterpret_cast <melthooksig_HOOK_GIMPLE_EXECUTE_t
*>
3791 melt_assertmsg("check predefhook routine HOOK_GIMPLE_EXECUTE",
3792 melthookptr_HOOK_GIMPLE_EXECUTE
);
3794 /* check predefhook HOOK_GIMPLE_EXECUTE name */
3795 melt_assertmsg("check predefhook name HOOK_GIMPLE_EXECUTE",
3796 !strncmp (melthkp
->hookname
,
3797 "HOOK_GIMPLE_EXECUTE", MELT_HOOKNAME_LEN
-1));
3798 return (*melthookptr_HOOK_GIMPLE_EXECUTE
) ((melt_ptr_t
)melthkp
);
3799 #endif /* MELT_SKIP_HOOK_PREDEFINED_CODE */
3800 } /* end melthookproc_HOOK_GIMPLE_EXECUTE */
3804 /*predefined hook definition HOOK_GIMPLE_GATE #124*/
3805 long melthookproc_HOOK_GIMPLE_GATE()
3807 /* code emitted by generate_runtypesupport_predefined_hooks for HOOK_GIMPLE_GATE*/
3808 #ifndef MELT_SKIP_HOOK_PREDEFINED_CODE
3809 melthook_ptr_t melthkp
= (melthook_ptr_t
) MELT_PREDEF (HOOK_GIMPLE_GATE
);
3810 typedef long melthooksig_HOOK_GIMPLE_GATE_t (melt_ptr_t
);
3812 melt_assertmsg (" check predefhook HOOK_GIMPLE_GATE exists",
3814 /*checkhook ishook*/
3815 melt_assertmsg (" check predefhook HOOK_GIMPLE_GATE is hook",
3816 melt_magic_discr ((melt_ptr_t
) melthkp
) == MELTOBMAG_HOOK
);
3817 /* check hook routine HOOK_GIMPLE_GATE */
3818 melthooksig_HOOK_GIMPLE_GATE_t
*melthookptr_HOOK_GIMPLE_GATE
=
3819 reinterpret_cast <melthooksig_HOOK_GIMPLE_GATE_t
*>
3821 melt_assertmsg("check predefhook routine HOOK_GIMPLE_GATE",
3822 melthookptr_HOOK_GIMPLE_GATE
);
3824 /* check predefhook HOOK_GIMPLE_GATE name */
3825 melt_assertmsg("check predefhook name HOOK_GIMPLE_GATE",
3826 !strncmp (melthkp
->hookname
,
3827 "HOOK_GIMPLE_GATE", MELT_HOOKNAME_LEN
-1));
3828 return (*melthookptr_HOOK_GIMPLE_GATE
) ((melt_ptr_t
)melthkp
);
3829 #endif /* MELT_SKIP_HOOK_PREDEFINED_CODE */
3830 } /* end melthookproc_HOOK_GIMPLE_GATE */
3834 /*predefined hook definition HOOK_HANDLE_ATTRIBUTE #125*/
3835 tree
melthookproc_HOOK_HANDLE_ATTRIBUTE(tree meltin_TR_IN_NODE_p0
, tree meltin_TR_NAME_p1
, tree meltin_TR_ARGS_p2
, long meltin_FLAGS_p3
, tree
* meltout_TR_OUT_NODE_o0
, long* meltout_OUT_NO_ADD_ATTRS_o1
)
3837 /* code emitted by generate_runtypesupport_predefined_hooks for HOOK_HANDLE_ATTRIBUTE*/
3838 #ifndef MELT_SKIP_HOOK_PREDEFINED_CODE
3839 melthook_ptr_t melthkp
= (melthook_ptr_t
) MELT_PREDEF (HOOK_HANDLE_ATTRIBUTE
);
3840 typedef tree
melthooksig_HOOK_HANDLE_ATTRIBUTE_t (melt_ptr_t
, tree
, tree
, tree
, long, tree
* , long* );
3842 melt_assertmsg (" check predefhook HOOK_HANDLE_ATTRIBUTE exists",
3844 /*checkhook ishook*/
3845 melt_assertmsg (" check predefhook HOOK_HANDLE_ATTRIBUTE is hook",
3846 melt_magic_discr ((melt_ptr_t
) melthkp
) == MELTOBMAG_HOOK
);
3847 /* check hook routine HOOK_HANDLE_ATTRIBUTE */
3848 melthooksig_HOOK_HANDLE_ATTRIBUTE_t
*melthookptr_HOOK_HANDLE_ATTRIBUTE
=
3849 reinterpret_cast <melthooksig_HOOK_HANDLE_ATTRIBUTE_t
*>
3851 melt_assertmsg("check predefhook routine HOOK_HANDLE_ATTRIBUTE",
3852 melthookptr_HOOK_HANDLE_ATTRIBUTE
);
3854 /* check predefhook HOOK_HANDLE_ATTRIBUTE name */
3855 melt_assertmsg("check predefhook name HOOK_HANDLE_ATTRIBUTE",
3856 !strncmp (melthkp
->hookname
,
3857 "HOOK_HANDLE_ATTRIBUTE", MELT_HOOKNAME_LEN
-1));
3858 return (*melthookptr_HOOK_HANDLE_ATTRIBUTE
) ((melt_ptr_t
)melthkp
,
3859 meltin_TR_IN_NODE_p0
,
3863 meltout_TR_OUT_NODE_o0
,
3864 meltout_OUT_NO_ADD_ATTRS_o1
);
3865 #endif /* MELT_SKIP_HOOK_PREDEFINED_CODE */
3866 } /* end melthookproc_HOOK_HANDLE_ATTRIBUTE */
3870 /*predefined hook definition HOOK_HANDLE_SIGALRM #126*/
3871 void melthookproc_HOOK_HANDLE_SIGALRM()
3873 /* code emitted by generate_runtypesupport_predefined_hooks for HOOK_HANDLE_SIGALRM*/
3874 #ifndef MELT_SKIP_HOOK_PREDEFINED_CODE
3875 melthook_ptr_t melthkp
= (melthook_ptr_t
) MELT_PREDEF (HOOK_HANDLE_SIGALRM
);
3876 typedef void melthooksig_HOOK_HANDLE_SIGALRM_t (melt_ptr_t
);
3878 melt_assertmsg (" check predefhook HOOK_HANDLE_SIGALRM exists",
3880 /*checkhook ishook*/
3881 melt_assertmsg (" check predefhook HOOK_HANDLE_SIGALRM is hook",
3882 melt_magic_discr ((melt_ptr_t
) melthkp
) == MELTOBMAG_HOOK
);
3883 /* check hook routine HOOK_HANDLE_SIGALRM */
3884 melthooksig_HOOK_HANDLE_SIGALRM_t
*melthookptr_HOOK_HANDLE_SIGALRM
=
3885 reinterpret_cast <melthooksig_HOOK_HANDLE_SIGALRM_t
*>
3887 melt_assertmsg("check predefhook routine HOOK_HANDLE_SIGALRM",
3888 melthookptr_HOOK_HANDLE_SIGALRM
);
3890 /* check predefhook HOOK_HANDLE_SIGALRM name */
3891 melt_assertmsg("check predefhook name HOOK_HANDLE_SIGALRM",
3892 !strncmp (melthkp
->hookname
,
3893 "HOOK_HANDLE_SIGALRM", MELT_HOOKNAME_LEN
-1));
3894 return (*melthookptr_HOOK_HANDLE_SIGALRM
) ((melt_ptr_t
)melthkp
);
3895 #endif /* MELT_SKIP_HOOK_PREDEFINED_CODE */
3896 } /* end melthookproc_HOOK_HANDLE_SIGALRM */
3900 /*predefined hook definition HOOK_HANDLE_SIGCHLD #127*/
3901 void melthookproc_HOOK_HANDLE_SIGCHLD()
3903 /* code emitted by generate_runtypesupport_predefined_hooks for HOOK_HANDLE_SIGCHLD*/
3904 #ifndef MELT_SKIP_HOOK_PREDEFINED_CODE
3905 melthook_ptr_t melthkp
= (melthook_ptr_t
) MELT_PREDEF (HOOK_HANDLE_SIGCHLD
);
3906 typedef void melthooksig_HOOK_HANDLE_SIGCHLD_t (melt_ptr_t
);
3908 melt_assertmsg (" check predefhook HOOK_HANDLE_SIGCHLD exists",
3910 /*checkhook ishook*/
3911 melt_assertmsg (" check predefhook HOOK_HANDLE_SIGCHLD is hook",
3912 melt_magic_discr ((melt_ptr_t
) melthkp
) == MELTOBMAG_HOOK
);
3913 /* check hook routine HOOK_HANDLE_SIGCHLD */
3914 melthooksig_HOOK_HANDLE_SIGCHLD_t
*melthookptr_HOOK_HANDLE_SIGCHLD
=
3915 reinterpret_cast <melthooksig_HOOK_HANDLE_SIGCHLD_t
*>
3917 melt_assertmsg("check predefhook routine HOOK_HANDLE_SIGCHLD",
3918 melthookptr_HOOK_HANDLE_SIGCHLD
);
3920 /* check predefhook HOOK_HANDLE_SIGCHLD name */
3921 melt_assertmsg("check predefhook name HOOK_HANDLE_SIGCHLD",
3922 !strncmp (melthkp
->hookname
,
3923 "HOOK_HANDLE_SIGCHLD", MELT_HOOKNAME_LEN
-1));
3924 return (*melthookptr_HOOK_HANDLE_SIGCHLD
) ((melt_ptr_t
)melthkp
);
3925 #endif /* MELT_SKIP_HOOK_PREDEFINED_CODE */
3926 } /* end melthookproc_HOOK_HANDLE_SIGCHLD */
3930 /*predefined hook definition HOOK_HANDLE_SIGIO #128*/
3931 void melthookproc_HOOK_HANDLE_SIGIO()
3933 /* code emitted by generate_runtypesupport_predefined_hooks for HOOK_HANDLE_SIGIO*/
3934 #ifndef MELT_SKIP_HOOK_PREDEFINED_CODE
3935 melthook_ptr_t melthkp
= (melthook_ptr_t
) MELT_PREDEF (HOOK_HANDLE_SIGIO
);
3936 typedef void melthooksig_HOOK_HANDLE_SIGIO_t (melt_ptr_t
);
3938 melt_assertmsg (" check predefhook HOOK_HANDLE_SIGIO exists",
3940 /*checkhook ishook*/
3941 melt_assertmsg (" check predefhook HOOK_HANDLE_SIGIO is hook",
3942 melt_magic_discr ((melt_ptr_t
) melthkp
) == MELTOBMAG_HOOK
);
3943 /* check hook routine HOOK_HANDLE_SIGIO */
3944 melthooksig_HOOK_HANDLE_SIGIO_t
*melthookptr_HOOK_HANDLE_SIGIO
=
3945 reinterpret_cast <melthooksig_HOOK_HANDLE_SIGIO_t
*>
3947 melt_assertmsg("check predefhook routine HOOK_HANDLE_SIGIO",
3948 melthookptr_HOOK_HANDLE_SIGIO
);
3950 /* check predefhook HOOK_HANDLE_SIGIO name */
3951 melt_assertmsg("check predefhook name HOOK_HANDLE_SIGIO",
3952 !strncmp (melthkp
->hookname
,
3953 "HOOK_HANDLE_SIGIO", MELT_HOOKNAME_LEN
-1));
3954 return (*melthookptr_HOOK_HANDLE_SIGIO
) ((melt_ptr_t
)melthkp
);
3955 #endif /* MELT_SKIP_HOOK_PREDEFINED_CODE */
3956 } /* end melthookproc_HOOK_HANDLE_SIGIO */
3960 /*predefined hook definition HOOK_INTERN_KEYWORD #129*/
3961 melt_ptr_t
melthookproc_HOOK_INTERN_KEYWORD(melt_ptr_t meltin_KEYWV_p0
)
3963 /* code emitted by generate_runtypesupport_predefined_hooks for HOOK_INTERN_KEYWORD*/
3964 #ifndef MELT_SKIP_HOOK_PREDEFINED_CODE
3965 melthook_ptr_t melthkp
= (melthook_ptr_t
) MELT_PREDEF (HOOK_INTERN_KEYWORD
);
3966 typedef melt_ptr_t
melthooksig_HOOK_INTERN_KEYWORD_t (melt_ptr_t
, melt_ptr_t
);
3968 melt_assertmsg (" check predefhook HOOK_INTERN_KEYWORD exists",
3970 /*checkhook ishook*/
3971 melt_assertmsg (" check predefhook HOOK_INTERN_KEYWORD is hook",
3972 melt_magic_discr ((melt_ptr_t
) melthkp
) == MELTOBMAG_HOOK
);
3973 /* check hook routine HOOK_INTERN_KEYWORD */
3974 melthooksig_HOOK_INTERN_KEYWORD_t
*melthookptr_HOOK_INTERN_KEYWORD
=
3975 reinterpret_cast <melthooksig_HOOK_INTERN_KEYWORD_t
*>
3977 melt_assertmsg("check predefhook routine HOOK_INTERN_KEYWORD",
3978 melthookptr_HOOK_INTERN_KEYWORD
);
3980 /* check predefhook HOOK_INTERN_KEYWORD name */
3981 melt_assertmsg("check predefhook name HOOK_INTERN_KEYWORD",
3982 !strncmp (melthkp
->hookname
,
3983 "HOOK_INTERN_KEYWORD", MELT_HOOKNAME_LEN
-1));
3984 return (*melthookptr_HOOK_INTERN_KEYWORD
) ((melt_ptr_t
)melthkp
,
3986 #endif /* MELT_SKIP_HOOK_PREDEFINED_CODE */
3987 } /* end melthookproc_HOOK_INTERN_KEYWORD */
3991 /*predefined hook definition HOOK_INTERN_SYMBOL #130*/
3992 melt_ptr_t
melthookproc_HOOK_INTERN_SYMBOL(melt_ptr_t meltin_SYMBV_p0
)
3994 /* code emitted by generate_runtypesupport_predefined_hooks for HOOK_INTERN_SYMBOL*/
3995 #ifndef MELT_SKIP_HOOK_PREDEFINED_CODE
3996 melthook_ptr_t melthkp
= (melthook_ptr_t
) MELT_PREDEF (HOOK_INTERN_SYMBOL
);
3997 typedef melt_ptr_t
melthooksig_HOOK_INTERN_SYMBOL_t (melt_ptr_t
, melt_ptr_t
);
3999 melt_assertmsg (" check predefhook HOOK_INTERN_SYMBOL exists",
4001 /*checkhook ishook*/
4002 melt_assertmsg (" check predefhook HOOK_INTERN_SYMBOL is hook",
4003 melt_magic_discr ((melt_ptr_t
) melthkp
) == MELTOBMAG_HOOK
);
4004 /* check hook routine HOOK_INTERN_SYMBOL */
4005 melthooksig_HOOK_INTERN_SYMBOL_t
*melthookptr_HOOK_INTERN_SYMBOL
=
4006 reinterpret_cast <melthooksig_HOOK_INTERN_SYMBOL_t
*>
4008 melt_assertmsg("check predefhook routine HOOK_INTERN_SYMBOL",
4009 melthookptr_HOOK_INTERN_SYMBOL
);
4011 /* check predefhook HOOK_INTERN_SYMBOL name */
4012 melt_assertmsg("check predefhook name HOOK_INTERN_SYMBOL",
4013 !strncmp (melthkp
->hookname
,
4014 "HOOK_INTERN_SYMBOL", MELT_HOOKNAME_LEN
-1));
4015 return (*melthookptr_HOOK_INTERN_SYMBOL
) ((melt_ptr_t
)melthkp
,
4017 #endif /* MELT_SKIP_HOOK_PREDEFINED_CODE */
4018 } /* end melthookproc_HOOK_INTERN_SYMBOL */
4022 /*predefined hook definition HOOK_INSTALL_ATTRIBUTES #131*/
4023 void melthookproc_HOOK_INSTALL_ATTRIBUTES()
4025 /* code emitted by generate_runtypesupport_predefined_hooks for HOOK_INSTALL_ATTRIBUTES*/
4026 #ifndef MELT_SKIP_HOOK_PREDEFINED_CODE
4027 melthook_ptr_t melthkp
= (melthook_ptr_t
) MELT_PREDEF (HOOK_INSTALL_ATTRIBUTES
);
4028 typedef void melthooksig_HOOK_INSTALL_ATTRIBUTES_t (melt_ptr_t
);
4030 melt_assertmsg (" check predefhook HOOK_INSTALL_ATTRIBUTES exists",
4032 /*checkhook ishook*/
4033 melt_assertmsg (" check predefhook HOOK_INSTALL_ATTRIBUTES is hook",
4034 melt_magic_discr ((melt_ptr_t
) melthkp
) == MELTOBMAG_HOOK
);
4035 /* check hook routine HOOK_INSTALL_ATTRIBUTES */
4036 melthooksig_HOOK_INSTALL_ATTRIBUTES_t
*melthookptr_HOOK_INSTALL_ATTRIBUTES
=
4037 reinterpret_cast <melthooksig_HOOK_INSTALL_ATTRIBUTES_t
*>
4039 melt_assertmsg("check predefhook routine HOOK_INSTALL_ATTRIBUTES",
4040 melthookptr_HOOK_INSTALL_ATTRIBUTES
);
4042 /* check predefhook HOOK_INSTALL_ATTRIBUTES name */
4043 melt_assertmsg("check predefhook name HOOK_INSTALL_ATTRIBUTES",
4044 !strncmp (melthkp
->hookname
,
4045 "HOOK_INSTALL_ATTRIBUTES", MELT_HOOKNAME_LEN
-1));
4046 return (*melthookptr_HOOK_INSTALL_ATTRIBUTES
) ((melt_ptr_t
)melthkp
);
4047 #endif /* MELT_SKIP_HOOK_PREDEFINED_CODE */
4048 } /* end melthookproc_HOOK_INSTALL_ATTRIBUTES */
4052 /*predefined hook definition HOOK_LOW_DEBUG_VALUE_AT #132*/
4053 void melthookproc_HOOK_LOW_DEBUG_VALUE_AT(melt_ptr_t meltin_VAL_p0
, const char* meltin_FILENAME_p1
, long meltin_LINENO_p2
, const char* meltin_MSG_p3
, long meltin_COUNT_p4
)
4055 /* code emitted by generate_runtypesupport_predefined_hooks for HOOK_LOW_DEBUG_VALUE_AT*/
4056 #ifndef MELT_SKIP_HOOK_PREDEFINED_CODE
4057 melthook_ptr_t melthkp
= (melthook_ptr_t
) MELT_PREDEF (HOOK_LOW_DEBUG_VALUE_AT
);
4058 typedef void melthooksig_HOOK_LOW_DEBUG_VALUE_AT_t (melt_ptr_t
, melt_ptr_t
, const char*, long, const char*, long);
4060 melt_assertmsg (" check predefhook HOOK_LOW_DEBUG_VALUE_AT exists",
4062 /*checkhook ishook*/
4063 melt_assertmsg (" check predefhook HOOK_LOW_DEBUG_VALUE_AT is hook",
4064 melt_magic_discr ((melt_ptr_t
) melthkp
) == MELTOBMAG_HOOK
);
4065 /* check hook routine HOOK_LOW_DEBUG_VALUE_AT */
4066 melthooksig_HOOK_LOW_DEBUG_VALUE_AT_t
*melthookptr_HOOK_LOW_DEBUG_VALUE_AT
=
4067 reinterpret_cast <melthooksig_HOOK_LOW_DEBUG_VALUE_AT_t
*>
4069 melt_assertmsg("check predefhook routine HOOK_LOW_DEBUG_VALUE_AT",
4070 melthookptr_HOOK_LOW_DEBUG_VALUE_AT
);
4072 /* check predefhook HOOK_LOW_DEBUG_VALUE_AT name */
4073 melt_assertmsg("check predefhook name HOOK_LOW_DEBUG_VALUE_AT",
4074 !strncmp (melthkp
->hookname
,
4075 "HOOK_LOW_DEBUG_VALUE_AT", MELT_HOOKNAME_LEN
-1));
4076 return (*melthookptr_HOOK_LOW_DEBUG_VALUE_AT
) ((melt_ptr_t
)melthkp
,
4082 #endif /* MELT_SKIP_HOOK_PREDEFINED_CODE */
4083 } /* end melthookproc_HOOK_LOW_DEBUG_VALUE_AT */
4087 /*predefined hook definition HOOK_LOW_STDERR_VALUE_AT #133*/
4088 void melthookproc_HOOK_LOW_STDERR_VALUE_AT(melt_ptr_t meltin_VAL_p0
, const char* meltin_FILENAME_p1
, long meltin_LINENO_p2
, const char* meltin_MSG_p3
, long meltin_COUNT_p4
)
4090 /* code emitted by generate_runtypesupport_predefined_hooks for HOOK_LOW_STDERR_VALUE_AT*/
4091 #ifndef MELT_SKIP_HOOK_PREDEFINED_CODE
4092 melthook_ptr_t melthkp
= (melthook_ptr_t
) MELT_PREDEF (HOOK_LOW_STDERR_VALUE_AT
);
4093 typedef void melthooksig_HOOK_LOW_STDERR_VALUE_AT_t (melt_ptr_t
, melt_ptr_t
, const char*, long, const char*, long);
4095 melt_assertmsg (" check predefhook HOOK_LOW_STDERR_VALUE_AT exists",
4097 /*checkhook ishook*/
4098 melt_assertmsg (" check predefhook HOOK_LOW_STDERR_VALUE_AT is hook",
4099 melt_magic_discr ((melt_ptr_t
) melthkp
) == MELTOBMAG_HOOK
);
4100 /* check hook routine HOOK_LOW_STDERR_VALUE_AT */
4101 melthooksig_HOOK_LOW_STDERR_VALUE_AT_t
*melthookptr_HOOK_LOW_STDERR_VALUE_AT
=
4102 reinterpret_cast <melthooksig_HOOK_LOW_STDERR_VALUE_AT_t
*>
4104 melt_assertmsg("check predefhook routine HOOK_LOW_STDERR_VALUE_AT",
4105 melthookptr_HOOK_LOW_STDERR_VALUE_AT
);
4107 /* check predefhook HOOK_LOW_STDERR_VALUE_AT name */
4108 melt_assertmsg("check predefhook name HOOK_LOW_STDERR_VALUE_AT",
4109 !strncmp (melthkp
->hookname
,
4110 "HOOK_LOW_STDERR_VALUE_AT", MELT_HOOKNAME_LEN
-1));
4111 return (*melthookptr_HOOK_LOW_STDERR_VALUE_AT
) ((melt_ptr_t
)melthkp
,
4117 #endif /* MELT_SKIP_HOOK_PREDEFINED_CODE */
4118 } /* end melthookproc_HOOK_LOW_STDERR_VALUE_AT */
4122 /*predefined hook definition HOOK_MACRO_EXPORTER #134*/
4123 void melthookproc_HOOK_MACRO_EXPORTER(melt_ptr_t meltin_SYM_p0
, melt_ptr_t meltin_VAL_p1
, melt_ptr_t meltin_CONTENV_p2
)
4125 /* code emitted by generate_runtypesupport_predefined_hooks for HOOK_MACRO_EXPORTER*/
4126 #ifndef MELT_SKIP_HOOK_PREDEFINED_CODE
4127 melthook_ptr_t melthkp
= (melthook_ptr_t
) MELT_PREDEF (HOOK_MACRO_EXPORTER
);
4128 typedef void melthooksig_HOOK_MACRO_EXPORTER_t (melt_ptr_t
, melt_ptr_t
, melt_ptr_t
, melt_ptr_t
);
4130 melt_assertmsg (" check predefhook HOOK_MACRO_EXPORTER exists",
4132 /*checkhook ishook*/
4133 melt_assertmsg (" check predefhook HOOK_MACRO_EXPORTER is hook",
4134 melt_magic_discr ((melt_ptr_t
) melthkp
) == MELTOBMAG_HOOK
);
4135 /* check hook routine HOOK_MACRO_EXPORTER */
4136 melthooksig_HOOK_MACRO_EXPORTER_t
*melthookptr_HOOK_MACRO_EXPORTER
=
4137 reinterpret_cast <melthooksig_HOOK_MACRO_EXPORTER_t
*>
4139 melt_assertmsg("check predefhook routine HOOK_MACRO_EXPORTER",
4140 melthookptr_HOOK_MACRO_EXPORTER
);
4142 /* check predefhook HOOK_MACRO_EXPORTER name */
4143 melt_assertmsg("check predefhook name HOOK_MACRO_EXPORTER",
4144 !strncmp (melthkp
->hookname
,
4145 "HOOK_MACRO_EXPORTER", MELT_HOOKNAME_LEN
-1));
4146 return (*melthookptr_HOOK_MACRO_EXPORTER
) ((melt_ptr_t
)melthkp
,
4150 #endif /* MELT_SKIP_HOOK_PREDEFINED_CODE */
4151 } /* end melthookproc_HOOK_MACRO_EXPORTER */
4155 /*predefined hook definition HOOK_MACRO_INSTALLER #135*/
4156 void melthookproc_HOOK_MACRO_INSTALLER(melt_ptr_t meltin_MBIND_p0
, melt_ptr_t meltin_MEXPCLOS_p1
)
4158 /* code emitted by generate_runtypesupport_predefined_hooks for HOOK_MACRO_INSTALLER*/
4159 #ifndef MELT_SKIP_HOOK_PREDEFINED_CODE
4160 melthook_ptr_t melthkp
= (melthook_ptr_t
) MELT_PREDEF (HOOK_MACRO_INSTALLER
);
4161 typedef void melthooksig_HOOK_MACRO_INSTALLER_t (melt_ptr_t
, melt_ptr_t
, melt_ptr_t
);
4163 melt_assertmsg (" check predefhook HOOK_MACRO_INSTALLER exists",
4165 /*checkhook ishook*/
4166 melt_assertmsg (" check predefhook HOOK_MACRO_INSTALLER is hook",
4167 melt_magic_discr ((melt_ptr_t
) melthkp
) == MELTOBMAG_HOOK
);
4168 /* check hook routine HOOK_MACRO_INSTALLER */
4169 melthooksig_HOOK_MACRO_INSTALLER_t
*melthookptr_HOOK_MACRO_INSTALLER
=
4170 reinterpret_cast <melthooksig_HOOK_MACRO_INSTALLER_t
*>
4172 melt_assertmsg("check predefhook routine HOOK_MACRO_INSTALLER",
4173 melthookptr_HOOK_MACRO_INSTALLER
);
4175 /* check predefhook HOOK_MACRO_INSTALLER name */
4176 melt_assertmsg("check predefhook name HOOK_MACRO_INSTALLER",
4177 !strncmp (melthkp
->hookname
,
4178 "HOOK_MACRO_INSTALLER", MELT_HOOKNAME_LEN
-1));
4179 return (*melthookptr_HOOK_MACRO_INSTALLER
) ((melt_ptr_t
)melthkp
,
4181 meltin_MEXPCLOS_p1
);
4182 #endif /* MELT_SKIP_HOOK_PREDEFINED_CODE */
4183 } /* end melthookproc_HOOK_MACRO_INSTALLER */
4187 /*predefined hook definition HOOK_MELT_DO_INITIAL_MODE #136*/
4188 void melthookproc_HOOK_MELT_DO_INITIAL_MODE(melt_ptr_t meltin_MODATA_p0
, const char* meltin_MODSTR_p1
)
4190 /* code emitted by generate_runtypesupport_predefined_hooks for HOOK_MELT_DO_INITIAL_MODE*/
4191 #ifndef MELT_SKIP_HOOK_PREDEFINED_CODE
4192 melthook_ptr_t melthkp
= (melthook_ptr_t
) MELT_PREDEF (HOOK_MELT_DO_INITIAL_MODE
);
4193 typedef void melthooksig_HOOK_MELT_DO_INITIAL_MODE_t (melt_ptr_t
, melt_ptr_t
, const char*);
4195 melt_assertmsg (" check predefhook HOOK_MELT_DO_INITIAL_MODE exists",
4197 /*checkhook ishook*/
4198 melt_assertmsg (" check predefhook HOOK_MELT_DO_INITIAL_MODE is hook",
4199 melt_magic_discr ((melt_ptr_t
) melthkp
) == MELTOBMAG_HOOK
);
4200 /* check hook routine HOOK_MELT_DO_INITIAL_MODE */
4201 melthooksig_HOOK_MELT_DO_INITIAL_MODE_t
*melthookptr_HOOK_MELT_DO_INITIAL_MODE
=
4202 reinterpret_cast <melthooksig_HOOK_MELT_DO_INITIAL_MODE_t
*>
4204 melt_assertmsg("check predefhook routine HOOK_MELT_DO_INITIAL_MODE",
4205 melthookptr_HOOK_MELT_DO_INITIAL_MODE
);
4207 /* check predefhook HOOK_MELT_DO_INITIAL_MODE name */
4208 melt_assertmsg("check predefhook name HOOK_MELT_DO_INITIAL_MODE",
4209 !strncmp (melthkp
->hookname
,
4210 "HOOK_MELT_DO_INITIAL_MODE", MELT_HOOKNAME_LEN
-1));
4211 return (*melthookptr_HOOK_MELT_DO_INITIAL_MODE
) ((melt_ptr_t
)melthkp
,
4214 #endif /* MELT_SKIP_HOOK_PREDEFINED_CODE */
4215 } /* end melthookproc_HOOK_MELT_DO_INITIAL_MODE */
4219 /*predefined hook definition HOOK_MELT_MAKE_LOCATION #137*/
4220 melt_ptr_t
melthookproc_HOOK_MELT_MAKE_LOCATION(const char* meltin_FILENAME_p0
, long meltin_LINENO_p1
)
4222 /* code emitted by generate_runtypesupport_predefined_hooks for HOOK_MELT_MAKE_LOCATION*/
4223 #ifndef MELT_SKIP_HOOK_PREDEFINED_CODE
4224 melthook_ptr_t melthkp
= (melthook_ptr_t
) MELT_PREDEF (HOOK_MELT_MAKE_LOCATION
);
4225 typedef melt_ptr_t
melthooksig_HOOK_MELT_MAKE_LOCATION_t (melt_ptr_t
, const char*, long);
4227 melt_assertmsg (" check predefhook HOOK_MELT_MAKE_LOCATION exists",
4229 /*checkhook ishook*/
4230 melt_assertmsg (" check predefhook HOOK_MELT_MAKE_LOCATION is hook",
4231 melt_magic_discr ((melt_ptr_t
) melthkp
) == MELTOBMAG_HOOK
);
4232 /* check hook routine HOOK_MELT_MAKE_LOCATION */
4233 melthooksig_HOOK_MELT_MAKE_LOCATION_t
*melthookptr_HOOK_MELT_MAKE_LOCATION
=
4234 reinterpret_cast <melthooksig_HOOK_MELT_MAKE_LOCATION_t
*>
4236 melt_assertmsg("check predefhook routine HOOK_MELT_MAKE_LOCATION",
4237 melthookptr_HOOK_MELT_MAKE_LOCATION
);
4239 /* check predefhook HOOK_MELT_MAKE_LOCATION name */
4240 melt_assertmsg("check predefhook name HOOK_MELT_MAKE_LOCATION",
4241 !strncmp (melthkp
->hookname
,
4242 "HOOK_MELT_MAKE_LOCATION", MELT_HOOKNAME_LEN
-1));
4243 return (*melthookptr_HOOK_MELT_MAKE_LOCATION
) ((melt_ptr_t
)melthkp
,
4246 #endif /* MELT_SKIP_HOOK_PREDEFINED_CODE */
4247 } /* end melthookproc_HOOK_MELT_MAKE_LOCATION */
4251 /*predefined hook definition HOOK_NAMED_KEYWORD #138*/
4252 melt_ptr_t
melthookproc_HOOK_NAMED_KEYWORD(const char* meltin_NAM_p0
, long meltin_CREATE_p1
)
4254 /* code emitted by generate_runtypesupport_predefined_hooks for HOOK_NAMED_KEYWORD*/
4255 #ifndef MELT_SKIP_HOOK_PREDEFINED_CODE
4256 melthook_ptr_t melthkp
= (melthook_ptr_t
) MELT_PREDEF (HOOK_NAMED_KEYWORD
);
4257 typedef melt_ptr_t
melthooksig_HOOK_NAMED_KEYWORD_t (melt_ptr_t
, const char*, long);
4259 melt_assertmsg (" check predefhook HOOK_NAMED_KEYWORD exists",
4261 /*checkhook ishook*/
4262 melt_assertmsg (" check predefhook HOOK_NAMED_KEYWORD is hook",
4263 melt_magic_discr ((melt_ptr_t
) melthkp
) == MELTOBMAG_HOOK
);
4264 /* check hook routine HOOK_NAMED_KEYWORD */
4265 melthooksig_HOOK_NAMED_KEYWORD_t
*melthookptr_HOOK_NAMED_KEYWORD
=
4266 reinterpret_cast <melthooksig_HOOK_NAMED_KEYWORD_t
*>
4268 melt_assertmsg("check predefhook routine HOOK_NAMED_KEYWORD",
4269 melthookptr_HOOK_NAMED_KEYWORD
);
4271 /* check predefhook HOOK_NAMED_KEYWORD name */
4272 melt_assertmsg("check predefhook name HOOK_NAMED_KEYWORD",
4273 !strncmp (melthkp
->hookname
,
4274 "HOOK_NAMED_KEYWORD", MELT_HOOKNAME_LEN
-1));
4275 return (*melthookptr_HOOK_NAMED_KEYWORD
) ((melt_ptr_t
)melthkp
,
4278 #endif /* MELT_SKIP_HOOK_PREDEFINED_CODE */
4279 } /* end melthookproc_HOOK_NAMED_KEYWORD */
4283 /*predefined hook definition HOOK_NAMED_SYMBOL #139*/
4284 melt_ptr_t
melthookproc_HOOK_NAMED_SYMBOL(const char* meltin_NAM_p0
, long meltin_CREATE_p1
)
4286 /* code emitted by generate_runtypesupport_predefined_hooks for HOOK_NAMED_SYMBOL*/
4287 #ifndef MELT_SKIP_HOOK_PREDEFINED_CODE
4288 melthook_ptr_t melthkp
= (melthook_ptr_t
) MELT_PREDEF (HOOK_NAMED_SYMBOL
);
4289 typedef melt_ptr_t
melthooksig_HOOK_NAMED_SYMBOL_t (melt_ptr_t
, const char*, long);
4291 melt_assertmsg (" check predefhook HOOK_NAMED_SYMBOL exists",
4293 /*checkhook ishook*/
4294 melt_assertmsg (" check predefhook HOOK_NAMED_SYMBOL is hook",
4295 melt_magic_discr ((melt_ptr_t
) melthkp
) == MELTOBMAG_HOOK
);
4296 /* check hook routine HOOK_NAMED_SYMBOL */
4297 melthooksig_HOOK_NAMED_SYMBOL_t
*melthookptr_HOOK_NAMED_SYMBOL
=
4298 reinterpret_cast <melthooksig_HOOK_NAMED_SYMBOL_t
*>
4300 melt_assertmsg("check predefhook routine HOOK_NAMED_SYMBOL",
4301 melthookptr_HOOK_NAMED_SYMBOL
);
4303 /* check predefhook HOOK_NAMED_SYMBOL name */
4304 melt_assertmsg("check predefhook name HOOK_NAMED_SYMBOL",
4305 !strncmp (melthkp
->hookname
,
4306 "HOOK_NAMED_SYMBOL", MELT_HOOKNAME_LEN
-1));
4307 return (*melthookptr_HOOK_NAMED_SYMBOL
) ((melt_ptr_t
)melthkp
,
4310 #endif /* MELT_SKIP_HOOK_PREDEFINED_CODE */
4311 } /* end melthookproc_HOOK_NAMED_SYMBOL */
4315 /*predefined hook definition HOOK_OVERRIDE_GATE #140*/
4316 void melthookproc_HOOK_OVERRIDE_GATE(long meltin_BEFOREGATE_p0
, long* meltout_AFTERGATE_o0
)
4318 /* code emitted by generate_runtypesupport_predefined_hooks for HOOK_OVERRIDE_GATE*/
4319 #ifndef MELT_SKIP_HOOK_PREDEFINED_CODE
4320 melthook_ptr_t melthkp
= (melthook_ptr_t
) MELT_PREDEF (HOOK_OVERRIDE_GATE
);
4321 typedef void melthooksig_HOOK_OVERRIDE_GATE_t (melt_ptr_t
, long, long* );
4323 melt_assertmsg (" check predefhook HOOK_OVERRIDE_GATE exists",
4325 /*checkhook ishook*/
4326 melt_assertmsg (" check predefhook HOOK_OVERRIDE_GATE is hook",
4327 melt_magic_discr ((melt_ptr_t
) melthkp
) == MELTOBMAG_HOOK
);
4328 /* check hook routine HOOK_OVERRIDE_GATE */
4329 melthooksig_HOOK_OVERRIDE_GATE_t
*melthookptr_HOOK_OVERRIDE_GATE
=
4330 reinterpret_cast <melthooksig_HOOK_OVERRIDE_GATE_t
*>
4332 melt_assertmsg("check predefhook routine HOOK_OVERRIDE_GATE",
4333 melthookptr_HOOK_OVERRIDE_GATE
);
4335 /* check predefhook HOOK_OVERRIDE_GATE name */
4336 melt_assertmsg("check predefhook name HOOK_OVERRIDE_GATE",
4337 !strncmp (melthkp
->hookname
,
4338 "HOOK_OVERRIDE_GATE", MELT_HOOKNAME_LEN
-1));
4339 return (*melthookptr_HOOK_OVERRIDE_GATE
) ((melt_ptr_t
)melthkp
,
4340 meltin_BEFOREGATE_p0
,
4341 meltout_AFTERGATE_o0
);
4342 #endif /* MELT_SKIP_HOOK_PREDEFINED_CODE */
4343 } /* end melthookproc_HOOK_OVERRIDE_GATE */
4347 /*predefined hook definition HOOK_PASS_EXECUTION #141*/
4348 void melthookproc_HOOK_PASS_EXECUTION(const char* meltin_PASSNAME_p0
, long meltin_PASSNUM_p1
, long meltin_TYPENUM_p2
)
4350 /* code emitted by generate_runtypesupport_predefined_hooks for HOOK_PASS_EXECUTION*/
4351 #ifndef MELT_SKIP_HOOK_PREDEFINED_CODE
4352 melthook_ptr_t melthkp
= (melthook_ptr_t
) MELT_PREDEF (HOOK_PASS_EXECUTION
);
4353 typedef void melthooksig_HOOK_PASS_EXECUTION_t (melt_ptr_t
, const char*, long, long);
4355 melt_assertmsg (" check predefhook HOOK_PASS_EXECUTION exists",
4357 /*checkhook ishook*/
4358 melt_assertmsg (" check predefhook HOOK_PASS_EXECUTION is hook",
4359 melt_magic_discr ((melt_ptr_t
) melthkp
) == MELTOBMAG_HOOK
);
4360 /* check hook routine HOOK_PASS_EXECUTION */
4361 melthooksig_HOOK_PASS_EXECUTION_t
*melthookptr_HOOK_PASS_EXECUTION
=
4362 reinterpret_cast <melthooksig_HOOK_PASS_EXECUTION_t
*>
4364 melt_assertmsg("check predefhook routine HOOK_PASS_EXECUTION",
4365 melthookptr_HOOK_PASS_EXECUTION
);
4367 /* check predefhook HOOK_PASS_EXECUTION name */
4368 melt_assertmsg("check predefhook name HOOK_PASS_EXECUTION",
4369 !strncmp (melthkp
->hookname
,
4370 "HOOK_PASS_EXECUTION", MELT_HOOKNAME_LEN
-1));
4371 return (*melthookptr_HOOK_PASS_EXECUTION
) ((melt_ptr_t
)melthkp
,
4375 #endif /* MELT_SKIP_HOOK_PREDEFINED_CODE */
4376 } /* end melthookproc_HOOK_PASS_EXECUTION */
4380 /*predefined hook definition HOOK_PATMACRO_EXPORTER #142*/
4381 void melthookproc_HOOK_PATMACRO_EXPORTER(melt_ptr_t meltin_SYM_p0
, melt_ptr_t meltin_MACVAL_p1
, melt_ptr_t meltin_PATVAL_p2
, melt_ptr_t meltin_CONTENV_p3
)
4383 /* code emitted by generate_runtypesupport_predefined_hooks for HOOK_PATMACRO_EXPORTER*/
4384 #ifndef MELT_SKIP_HOOK_PREDEFINED_CODE
4385 melthook_ptr_t melthkp
= (melthook_ptr_t
) MELT_PREDEF (HOOK_PATMACRO_EXPORTER
);
4386 typedef void melthooksig_HOOK_PATMACRO_EXPORTER_t (melt_ptr_t
, melt_ptr_t
, melt_ptr_t
, melt_ptr_t
, melt_ptr_t
);
4388 melt_assertmsg (" check predefhook HOOK_PATMACRO_EXPORTER exists",
4390 /*checkhook ishook*/
4391 melt_assertmsg (" check predefhook HOOK_PATMACRO_EXPORTER is hook",
4392 melt_magic_discr ((melt_ptr_t
) melthkp
) == MELTOBMAG_HOOK
);
4393 /* check hook routine HOOK_PATMACRO_EXPORTER */
4394 melthooksig_HOOK_PATMACRO_EXPORTER_t
*melthookptr_HOOK_PATMACRO_EXPORTER
=
4395 reinterpret_cast <melthooksig_HOOK_PATMACRO_EXPORTER_t
*>
4397 melt_assertmsg("check predefhook routine HOOK_PATMACRO_EXPORTER",
4398 melthookptr_HOOK_PATMACRO_EXPORTER
);
4400 /* check predefhook HOOK_PATMACRO_EXPORTER name */
4401 melt_assertmsg("check predefhook name HOOK_PATMACRO_EXPORTER",
4402 !strncmp (melthkp
->hookname
,
4403 "HOOK_PATMACRO_EXPORTER", MELT_HOOKNAME_LEN
-1));
4404 return (*melthookptr_HOOK_PATMACRO_EXPORTER
) ((melt_ptr_t
)melthkp
,
4409 #endif /* MELT_SKIP_HOOK_PREDEFINED_CODE */
4410 } /* end melthookproc_HOOK_PATMACRO_EXPORTER */
4414 /*predefined hook definition HOOK_POLL_INPUTS #143*/
4415 void melthookproc_HOOK_POLL_INPUTS(long meltin_DELAYMS_p0
)
4417 /* code emitted by generate_runtypesupport_predefined_hooks for HOOK_POLL_INPUTS*/
4418 #ifndef MELT_SKIP_HOOK_PREDEFINED_CODE
4419 melthook_ptr_t melthkp
= (melthook_ptr_t
) MELT_PREDEF (HOOK_POLL_INPUTS
);
4420 typedef void melthooksig_HOOK_POLL_INPUTS_t (melt_ptr_t
, long);
4422 melt_assertmsg (" check predefhook HOOK_POLL_INPUTS exists",
4424 /*checkhook ishook*/
4425 melt_assertmsg (" check predefhook HOOK_POLL_INPUTS is hook",
4426 melt_magic_discr ((melt_ptr_t
) melthkp
) == MELTOBMAG_HOOK
);
4427 /* check hook routine HOOK_POLL_INPUTS */
4428 melthooksig_HOOK_POLL_INPUTS_t
*melthookptr_HOOK_POLL_INPUTS
=
4429 reinterpret_cast <melthooksig_HOOK_POLL_INPUTS_t
*>
4431 melt_assertmsg("check predefhook routine HOOK_POLL_INPUTS",
4432 melthookptr_HOOK_POLL_INPUTS
);
4434 /* check predefhook HOOK_POLL_INPUTS name */
4435 melt_assertmsg("check predefhook name HOOK_POLL_INPUTS",
4436 !strncmp (melthkp
->hookname
,
4437 "HOOK_POLL_INPUTS", MELT_HOOKNAME_LEN
-1));
4438 return (*melthookptr_HOOK_POLL_INPUTS
) ((melt_ptr_t
)melthkp
,
4440 #endif /* MELT_SKIP_HOOK_PREDEFINED_CODE */
4441 } /* end melthookproc_HOOK_POLL_INPUTS */
4445 /*predefined hook definition HOOK_PRE_GENERICIZE #144*/
4446 void melthookproc_HOOK_PRE_GENERICIZE(tree meltin_TFNDECL_p0
)
4448 /* code emitted by generate_runtypesupport_predefined_hooks for HOOK_PRE_GENERICIZE*/
4449 #ifndef MELT_SKIP_HOOK_PREDEFINED_CODE
4450 melthook_ptr_t melthkp
= (melthook_ptr_t
) MELT_PREDEF (HOOK_PRE_GENERICIZE
);
4451 typedef void melthooksig_HOOK_PRE_GENERICIZE_t (melt_ptr_t
, tree
);
4453 melt_assertmsg (" check predefhook HOOK_PRE_GENERICIZE exists",
4455 /*checkhook ishook*/
4456 melt_assertmsg (" check predefhook HOOK_PRE_GENERICIZE is hook",
4457 melt_magic_discr ((melt_ptr_t
) melthkp
) == MELTOBMAG_HOOK
);
4458 /* check hook routine HOOK_PRE_GENERICIZE */
4459 melthooksig_HOOK_PRE_GENERICIZE_t
*melthookptr_HOOK_PRE_GENERICIZE
=
4460 reinterpret_cast <melthooksig_HOOK_PRE_GENERICIZE_t
*>
4462 melt_assertmsg("check predefhook routine HOOK_PRE_GENERICIZE",
4463 melthookptr_HOOK_PRE_GENERICIZE
);
4465 /* check predefhook HOOK_PRE_GENERICIZE name */
4466 melt_assertmsg("check predefhook name HOOK_PRE_GENERICIZE",
4467 !strncmp (melthkp
->hookname
,
4468 "HOOK_PRE_GENERICIZE", MELT_HOOKNAME_LEN
-1));
4469 return (*melthookptr_HOOK_PRE_GENERICIZE
) ((melt_ptr_t
)melthkp
,
4471 #endif /* MELT_SKIP_HOOK_PREDEFINED_CODE */
4472 } /* end melthookproc_HOOK_PRE_GENERICIZE */
4476 /*predefined hook definition HOOK_PROCESS_PRAGMA #145*/
4477 void melthookproc_HOOK_PROCESS_PRAGMA(long meltin_LIX_p0
)
4479 /* code emitted by generate_runtypesupport_predefined_hooks for HOOK_PROCESS_PRAGMA*/
4480 #ifndef MELT_SKIP_HOOK_PREDEFINED_CODE
4481 melthook_ptr_t melthkp
= (melthook_ptr_t
) MELT_PREDEF (HOOK_PROCESS_PRAGMA
);
4482 typedef void melthooksig_HOOK_PROCESS_PRAGMA_t (melt_ptr_t
, long);
4484 melt_assertmsg (" check predefhook HOOK_PROCESS_PRAGMA exists",
4486 /*checkhook ishook*/
4487 melt_assertmsg (" check predefhook HOOK_PROCESS_PRAGMA is hook",
4488 melt_magic_discr ((melt_ptr_t
) melthkp
) == MELTOBMAG_HOOK
);
4489 /* check hook routine HOOK_PROCESS_PRAGMA */
4490 melthooksig_HOOK_PROCESS_PRAGMA_t
*melthookptr_HOOK_PROCESS_PRAGMA
=
4491 reinterpret_cast <melthooksig_HOOK_PROCESS_PRAGMA_t
*>
4493 melt_assertmsg("check predefhook routine HOOK_PROCESS_PRAGMA",
4494 melthookptr_HOOK_PROCESS_PRAGMA
);
4496 /* check predefhook HOOK_PROCESS_PRAGMA name */
4497 melt_assertmsg("check predefhook name HOOK_PROCESS_PRAGMA",
4498 !strncmp (melthkp
->hookname
,
4499 "HOOK_PROCESS_PRAGMA", MELT_HOOKNAME_LEN
-1));
4500 return (*melthookptr_HOOK_PROCESS_PRAGMA
) ((melt_ptr_t
)melthkp
,
4502 #endif /* MELT_SKIP_HOOK_PREDEFINED_CODE */
4503 } /* end melthookproc_HOOK_PROCESS_PRAGMA */
4507 /*predefined hook definition HOOK_REGISTER_PRAGMAS #146*/
4508 void melthookproc_HOOK_REGISTER_PRAGMAS()
4510 /* code emitted by generate_runtypesupport_predefined_hooks for HOOK_REGISTER_PRAGMAS*/
4511 #ifndef MELT_SKIP_HOOK_PREDEFINED_CODE
4512 melthook_ptr_t melthkp
= (melthook_ptr_t
) MELT_PREDEF (HOOK_REGISTER_PRAGMAS
);
4513 typedef void melthooksig_HOOK_REGISTER_PRAGMAS_t (melt_ptr_t
);
4515 melt_assertmsg (" check predefhook HOOK_REGISTER_PRAGMAS exists",
4517 /*checkhook ishook*/
4518 melt_assertmsg (" check predefhook HOOK_REGISTER_PRAGMAS is hook",
4519 melt_magic_discr ((melt_ptr_t
) melthkp
) == MELTOBMAG_HOOK
);
4520 /* check hook routine HOOK_REGISTER_PRAGMAS */
4521 melthooksig_HOOK_REGISTER_PRAGMAS_t
*melthookptr_HOOK_REGISTER_PRAGMAS
=
4522 reinterpret_cast <melthooksig_HOOK_REGISTER_PRAGMAS_t
*>
4524 melt_assertmsg("check predefhook routine HOOK_REGISTER_PRAGMAS",
4525 melthookptr_HOOK_REGISTER_PRAGMAS
);
4527 /* check predefhook HOOK_REGISTER_PRAGMAS name */
4528 melt_assertmsg("check predefhook name HOOK_REGISTER_PRAGMAS",
4529 !strncmp (melthkp
->hookname
,
4530 "HOOK_REGISTER_PRAGMAS", MELT_HOOKNAME_LEN
-1));
4531 return (*melthookptr_HOOK_REGISTER_PRAGMAS
) ((melt_ptr_t
)melthkp
);
4532 #endif /* MELT_SKIP_HOOK_PREDEFINED_CODE */
4533 } /* end melthookproc_HOOK_REGISTER_PRAGMAS */
4537 /*predefined hook definition HOOK_RTL_EXECUTE #147*/
4538 long melthookproc_HOOK_RTL_EXECUTE()
4540 /* code emitted by generate_runtypesupport_predefined_hooks for HOOK_RTL_EXECUTE*/
4541 #ifndef MELT_SKIP_HOOK_PREDEFINED_CODE
4542 melthook_ptr_t melthkp
= (melthook_ptr_t
) MELT_PREDEF (HOOK_RTL_EXECUTE
);
4543 typedef long melthooksig_HOOK_RTL_EXECUTE_t (melt_ptr_t
);
4545 melt_assertmsg (" check predefhook HOOK_RTL_EXECUTE exists",
4547 /*checkhook ishook*/
4548 melt_assertmsg (" check predefhook HOOK_RTL_EXECUTE is hook",
4549 melt_magic_discr ((melt_ptr_t
) melthkp
) == MELTOBMAG_HOOK
);
4550 /* check hook routine HOOK_RTL_EXECUTE */
4551 melthooksig_HOOK_RTL_EXECUTE_t
*melthookptr_HOOK_RTL_EXECUTE
=
4552 reinterpret_cast <melthooksig_HOOK_RTL_EXECUTE_t
*>
4554 melt_assertmsg("check predefhook routine HOOK_RTL_EXECUTE",
4555 melthookptr_HOOK_RTL_EXECUTE
);
4557 /* check predefhook HOOK_RTL_EXECUTE name */
4558 melt_assertmsg("check predefhook name HOOK_RTL_EXECUTE",
4559 !strncmp (melthkp
->hookname
,
4560 "HOOK_RTL_EXECUTE", MELT_HOOKNAME_LEN
-1));
4561 return (*melthookptr_HOOK_RTL_EXECUTE
) ((melt_ptr_t
)melthkp
);
4562 #endif /* MELT_SKIP_HOOK_PREDEFINED_CODE */
4563 } /* end melthookproc_HOOK_RTL_EXECUTE */
4567 /*predefined hook definition HOOK_RTL_GATE #148*/
4568 long melthookproc_HOOK_RTL_GATE()
4570 /* code emitted by generate_runtypesupport_predefined_hooks for HOOK_RTL_GATE*/
4571 #ifndef MELT_SKIP_HOOK_PREDEFINED_CODE
4572 melthook_ptr_t melthkp
= (melthook_ptr_t
) MELT_PREDEF (HOOK_RTL_GATE
);
4573 typedef long melthooksig_HOOK_RTL_GATE_t (melt_ptr_t
);
4575 melt_assertmsg (" check predefhook HOOK_RTL_GATE exists",
4577 /*checkhook ishook*/
4578 melt_assertmsg (" check predefhook HOOK_RTL_GATE is hook",
4579 melt_magic_discr ((melt_ptr_t
) melthkp
) == MELTOBMAG_HOOK
);
4580 /* check hook routine HOOK_RTL_GATE */
4581 melthooksig_HOOK_RTL_GATE_t
*melthookptr_HOOK_RTL_GATE
=
4582 reinterpret_cast <melthooksig_HOOK_RTL_GATE_t
*>
4584 melt_assertmsg("check predefhook routine HOOK_RTL_GATE",
4585 melthookptr_HOOK_RTL_GATE
);
4587 /* check predefhook HOOK_RTL_GATE name */
4588 melt_assertmsg("check predefhook name HOOK_RTL_GATE",
4589 !strncmp (melthkp
->hookname
,
4590 "HOOK_RTL_GATE", MELT_HOOKNAME_LEN
-1));
4591 return (*melthookptr_HOOK_RTL_GATE
) ((melt_ptr_t
)melthkp
);
4592 #endif /* MELT_SKIP_HOOK_PREDEFINED_CODE */
4593 } /* end melthookproc_HOOK_RTL_GATE */
4597 /*predefined hook definition HOOK_SIMPLE_IPA_EXECUTE #149*/
4598 long melthookproc_HOOK_SIMPLE_IPA_EXECUTE()
4600 /* code emitted by generate_runtypesupport_predefined_hooks for HOOK_SIMPLE_IPA_EXECUTE*/
4601 #ifndef MELT_SKIP_HOOK_PREDEFINED_CODE
4602 melthook_ptr_t melthkp
= (melthook_ptr_t
) MELT_PREDEF (HOOK_SIMPLE_IPA_EXECUTE
);
4603 typedef long melthooksig_HOOK_SIMPLE_IPA_EXECUTE_t (melt_ptr_t
);
4605 melt_assertmsg (" check predefhook HOOK_SIMPLE_IPA_EXECUTE exists",
4607 /*checkhook ishook*/
4608 melt_assertmsg (" check predefhook HOOK_SIMPLE_IPA_EXECUTE is hook",
4609 melt_magic_discr ((melt_ptr_t
) melthkp
) == MELTOBMAG_HOOK
);
4610 /* check hook routine HOOK_SIMPLE_IPA_EXECUTE */
4611 melthooksig_HOOK_SIMPLE_IPA_EXECUTE_t
*melthookptr_HOOK_SIMPLE_IPA_EXECUTE
=
4612 reinterpret_cast <melthooksig_HOOK_SIMPLE_IPA_EXECUTE_t
*>
4614 melt_assertmsg("check predefhook routine HOOK_SIMPLE_IPA_EXECUTE",
4615 melthookptr_HOOK_SIMPLE_IPA_EXECUTE
);
4617 /* check predefhook HOOK_SIMPLE_IPA_EXECUTE name */
4618 melt_assertmsg("check predefhook name HOOK_SIMPLE_IPA_EXECUTE",
4619 !strncmp (melthkp
->hookname
,
4620 "HOOK_SIMPLE_IPA_EXECUTE", MELT_HOOKNAME_LEN
-1));
4621 return (*melthookptr_HOOK_SIMPLE_IPA_EXECUTE
) ((melt_ptr_t
)melthkp
);
4622 #endif /* MELT_SKIP_HOOK_PREDEFINED_CODE */
4623 } /* end melthookproc_HOOK_SIMPLE_IPA_EXECUTE */
4627 /*predefined hook definition HOOK_SORT_COMPARE_LESS #150*/
4628 long melthookproc_HOOK_SORT_COMPARE_LESS(melt_ptr_t meltin_LEFT_p0
, melt_ptr_t meltin_RIGHT_p1
, melt_ptr_t meltin_CMP_p2
)
4630 /* code emitted by generate_runtypesupport_predefined_hooks for HOOK_SORT_COMPARE_LESS*/
4631 #ifndef MELT_SKIP_HOOK_PREDEFINED_CODE
4632 melthook_ptr_t melthkp
= (melthook_ptr_t
) MELT_PREDEF (HOOK_SORT_COMPARE_LESS
);
4633 typedef long melthooksig_HOOK_SORT_COMPARE_LESS_t (melt_ptr_t
, melt_ptr_t
, melt_ptr_t
, melt_ptr_t
);
4635 melt_assertmsg (" check predefhook HOOK_SORT_COMPARE_LESS exists",
4637 /*checkhook ishook*/
4638 melt_assertmsg (" check predefhook HOOK_SORT_COMPARE_LESS is hook",
4639 melt_magic_discr ((melt_ptr_t
) melthkp
) == MELTOBMAG_HOOK
);
4640 /* check hook routine HOOK_SORT_COMPARE_LESS */
4641 melthooksig_HOOK_SORT_COMPARE_LESS_t
*melthookptr_HOOK_SORT_COMPARE_LESS
=
4642 reinterpret_cast <melthooksig_HOOK_SORT_COMPARE_LESS_t
*>
4644 melt_assertmsg("check predefhook routine HOOK_SORT_COMPARE_LESS",
4645 melthookptr_HOOK_SORT_COMPARE_LESS
);
4647 /* check predefhook HOOK_SORT_COMPARE_LESS name */
4648 melt_assertmsg("check predefhook name HOOK_SORT_COMPARE_LESS",
4649 !strncmp (melthkp
->hookname
,
4650 "HOOK_SORT_COMPARE_LESS", MELT_HOOKNAME_LEN
-1));
4651 return (*melthookptr_HOOK_SORT_COMPARE_LESS
) ((melt_ptr_t
)melthkp
,
4655 #endif /* MELT_SKIP_HOOK_PREDEFINED_CODE */
4656 } /* end melthookproc_HOOK_SORT_COMPARE_LESS */
4660 /*predefined hook definition HOOK_START_UNIT #151*/
4661 void melthookproc_HOOK_START_UNIT()
4663 /* code emitted by generate_runtypesupport_predefined_hooks for HOOK_START_UNIT*/
4664 #ifndef MELT_SKIP_HOOK_PREDEFINED_CODE
4665 melthook_ptr_t melthkp
= (melthook_ptr_t
) MELT_PREDEF (HOOK_START_UNIT
);
4666 typedef void melthooksig_HOOK_START_UNIT_t (melt_ptr_t
);
4668 melt_assertmsg (" check predefhook HOOK_START_UNIT exists",
4670 /*checkhook ishook*/
4671 melt_assertmsg (" check predefhook HOOK_START_UNIT is hook",
4672 melt_magic_discr ((melt_ptr_t
) melthkp
) == MELTOBMAG_HOOK
);
4673 /* check hook routine HOOK_START_UNIT */
4674 melthooksig_HOOK_START_UNIT_t
*melthookptr_HOOK_START_UNIT
=
4675 reinterpret_cast <melthooksig_HOOK_START_UNIT_t
*>
4677 melt_assertmsg("check predefhook routine HOOK_START_UNIT",
4678 melthookptr_HOOK_START_UNIT
);
4680 /* check predefhook HOOK_START_UNIT name */
4681 melt_assertmsg("check predefhook name HOOK_START_UNIT",
4682 !strncmp (melthkp
->hookname
,
4683 "HOOK_START_UNIT", MELT_HOOKNAME_LEN
-1));
4684 return (*melthookptr_HOOK_START_UNIT
) ((melt_ptr_t
)melthkp
);
4685 #endif /* MELT_SKIP_HOOK_PREDEFINED_CODE */
4686 } /* end melthookproc_HOOK_START_UNIT */
4690 /*predefined hook definition HOOK_SYMBOL_IMPORTER #152*/
4691 melt_ptr_t
melthookproc_HOOK_SYMBOL_IMPORTER(const char* meltin_SYMNAMESTR_p0
, const char* meltin_MODULENAMESTR_p1
, melt_ptr_t meltin_PARENV_p2
)
4693 /* code emitted by generate_runtypesupport_predefined_hooks for HOOK_SYMBOL_IMPORTER*/
4694 #ifndef MELT_SKIP_HOOK_PREDEFINED_CODE
4695 melthook_ptr_t melthkp
= (melthook_ptr_t
) MELT_PREDEF (HOOK_SYMBOL_IMPORTER
);
4696 typedef melt_ptr_t
melthooksig_HOOK_SYMBOL_IMPORTER_t (melt_ptr_t
, const char*, const char*, melt_ptr_t
);
4698 melt_assertmsg (" check predefhook HOOK_SYMBOL_IMPORTER exists",
4700 /*checkhook ishook*/
4701 melt_assertmsg (" check predefhook HOOK_SYMBOL_IMPORTER is hook",
4702 melt_magic_discr ((melt_ptr_t
) melthkp
) == MELTOBMAG_HOOK
);
4703 /* check hook routine HOOK_SYMBOL_IMPORTER */
4704 melthooksig_HOOK_SYMBOL_IMPORTER_t
*melthookptr_HOOK_SYMBOL_IMPORTER
=
4705 reinterpret_cast <melthooksig_HOOK_SYMBOL_IMPORTER_t
*>
4707 melt_assertmsg("check predefhook routine HOOK_SYMBOL_IMPORTER",
4708 melthookptr_HOOK_SYMBOL_IMPORTER
);
4710 /* check predefhook HOOK_SYMBOL_IMPORTER name */
4711 melt_assertmsg("check predefhook name HOOK_SYMBOL_IMPORTER",
4712 !strncmp (melthkp
->hookname
,
4713 "HOOK_SYMBOL_IMPORTER", MELT_HOOKNAME_LEN
-1));
4714 return (*melthookptr_HOOK_SYMBOL_IMPORTER
) ((melt_ptr_t
)melthkp
,
4715 meltin_SYMNAMESTR_p0
,
4716 meltin_MODULENAMESTR_p1
,
4718 #endif /* MELT_SKIP_HOOK_PREDEFINED_CODE */
4719 } /* end melthookproc_HOOK_SYMBOL_IMPORTER */
4723 /*predefined hook definition HOOK_VALUE_EXPORTER #153*/
4724 void melthookproc_HOOK_VALUE_EXPORTER(melt_ptr_t meltin_SYM_p0
, melt_ptr_t meltin_VAL_p1
, melt_ptr_t meltin_CONTENV_p2
)
4726 /* code emitted by generate_runtypesupport_predefined_hooks for HOOK_VALUE_EXPORTER*/
4727 #ifndef MELT_SKIP_HOOK_PREDEFINED_CODE
4728 melthook_ptr_t melthkp
= (melthook_ptr_t
) MELT_PREDEF (HOOK_VALUE_EXPORTER
);
4729 typedef void melthooksig_HOOK_VALUE_EXPORTER_t (melt_ptr_t
, melt_ptr_t
, melt_ptr_t
, melt_ptr_t
);
4731 melt_assertmsg (" check predefhook HOOK_VALUE_EXPORTER exists",
4733 /*checkhook ishook*/
4734 melt_assertmsg (" check predefhook HOOK_VALUE_EXPORTER is hook",
4735 melt_magic_discr ((melt_ptr_t
) melthkp
) == MELTOBMAG_HOOK
);
4736 /* check hook routine HOOK_VALUE_EXPORTER */
4737 melthooksig_HOOK_VALUE_EXPORTER_t
*melthookptr_HOOK_VALUE_EXPORTER
=
4738 reinterpret_cast <melthooksig_HOOK_VALUE_EXPORTER_t
*>
4740 melt_assertmsg("check predefhook routine HOOK_VALUE_EXPORTER",
4741 melthookptr_HOOK_VALUE_EXPORTER
);
4743 /* check predefhook HOOK_VALUE_EXPORTER name */
4744 melt_assertmsg("check predefhook name HOOK_VALUE_EXPORTER",
4745 !strncmp (melthkp
->hookname
,
4746 "HOOK_VALUE_EXPORTER", MELT_HOOKNAME_LEN
-1));
4747 return (*melthookptr_HOOK_VALUE_EXPORTER
) ((melt_ptr_t
)melthkp
,
4751 #endif /* MELT_SKIP_HOOK_PREDEFINED_CODE */
4752 } /* end melthookproc_HOOK_VALUE_EXPORTER */
4763 /* end of code generated by generate_runtypesupport_predefined_hooks for 161 predefined */
4765 /*** End of code file meltbuild-sources/generated/meltrunsup-inc.cc generated on 2015 Jun 12
4766 * by GCC MELT 6.0.0 20150415 (experimental) [melt-branch revision 224408] MELT_1.2-pre-merged . ***/