Skip to content

Commit a702159

Browse files
committed
Add casts to suppress warnings about m68k-specific kluge in fmgr.c.
1 parent 04b5487 commit a702159

File tree

1 file changed

+141
-75
lines changed

1 file changed

+141
-75
lines changed

src/backend/utils/fmgr/fmgr.c

Lines changed: 141 additions & 75 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
*
99
*
1010
* IDENTIFICATION
11-
* $PostgreSQL: pgsql/src/backend/utils/fmgr/fmgr.c,v 1.106 2007/04/06 04:21:43 tgl Exp $
11+
* $PostgreSQL: pgsql/src/backend/utils/fmgr/fmgr.c,v 1.107 2007/07/13 02:25:48 tgl Exp $
1212
*
1313
*-------------------------------------------------------------------------
1414
*/
@@ -38,7 +38,8 @@
3838
* declare the function pointer to return int, so the compiler picks up the
3939
* return value from %d0. (Functions returning pointers put their value
4040
* *additionally* into %d0 for compatibility.) The price is that there are
41-
* some warnings about int->pointer conversions...
41+
* some warnings about int->pointer conversions ... which we can suppress
42+
* with suitably ugly casts in fmgr_oldstyle().
4243
*/
4344
#if (defined(__mc68000__) || (defined(__m68k__))) && defined(__ELF__)
4445
typedef int32 (*func_ptr) ();
@@ -626,7 +627,7 @@ fmgr_oldstyle(PG_FUNCTION_ARGS)
626627
switch (n_arguments)
627628
{
628629
case 0:
629-
returnValue = (*user_fn) ();
630+
returnValue = (char *) (*user_fn) ();
630631
break;
631632
case 1:
632633

@@ -635,108 +636,173 @@ fmgr_oldstyle(PG_FUNCTION_ARGS)
635636
* there are other functions still out there that also rely on
636637
* this undocumented hack?
637638
*/
638-
returnValue = (*user_fn) (fcinfo->arg[0], &fcinfo->isnull);
639+
returnValue = (char *) (*user_fn) (fcinfo->arg[0],
640+
&fcinfo->isnull);
639641
break;
640642
case 2:
641-
returnValue = (*user_fn) (fcinfo->arg[0], fcinfo->arg[1]);
643+
returnValue = (char *) (*user_fn) (fcinfo->arg[0],
644+
fcinfo->arg[1]);
642645
break;
643646
case 3:
644-
returnValue = (*user_fn) (fcinfo->arg[0], fcinfo->arg[1],
645-
fcinfo->arg[2]);
647+
returnValue = (char *) (*user_fn) (fcinfo->arg[0],
648+
fcinfo->arg[1],
649+
fcinfo->arg[2]);
646650
break;
647651
case 4:
648-
returnValue = (*user_fn) (fcinfo->arg[0], fcinfo->arg[1],
649-
fcinfo->arg[2], fcinfo->arg[3]);
652+
returnValue = (char *) (*user_fn) (fcinfo->arg[0],
653+
fcinfo->arg[1],
654+
fcinfo->arg[2],
655+
fcinfo->arg[3]);
650656
break;
651657
case 5:
652-
returnValue = (*user_fn) (fcinfo->arg[0], fcinfo->arg[1],
653-
fcinfo->arg[2], fcinfo->arg[3],
654-
fcinfo->arg[4]);
658+
returnValue = (char *) (*user_fn) (fcinfo->arg[0],
659+
fcinfo->arg[1],
660+
fcinfo->arg[2],
661+
fcinfo->arg[3],
662+
fcinfo->arg[4]);
655663
break;
656664
case 6:
657-
returnValue = (*user_fn) (fcinfo->arg[0], fcinfo->arg[1],
658-
fcinfo->arg[2], fcinfo->arg[3],
659-
fcinfo->arg[4], fcinfo->arg[5]);
665+
returnValue = (char *) (*user_fn) (fcinfo->arg[0],
666+
fcinfo->arg[1],
667+
fcinfo->arg[2],
668+
fcinfo->arg[3],
669+
fcinfo->arg[4],
670+
fcinfo->arg[5]);
660671
break;
661672
case 7:
662-
returnValue = (*user_fn) (fcinfo->arg[0], fcinfo->arg[1],
663-
fcinfo->arg[2], fcinfo->arg[3],
664-
fcinfo->arg[4], fcinfo->arg[5],
665-
fcinfo->arg[6]);
673+
returnValue = (char *) (*user_fn) (fcinfo->arg[0],
674+
fcinfo->arg[1],
675+
fcinfo->arg[2],
676+
fcinfo->arg[3],
677+
fcinfo->arg[4],
678+
fcinfo->arg[5],
679+
fcinfo->arg[6]);
666680
break;
667681
case 8:
668-
returnValue = (*user_fn) (fcinfo->arg[0], fcinfo->arg[1],
669-
fcinfo->arg[2], fcinfo->arg[3],
670-
fcinfo->arg[4], fcinfo->arg[5],
671-
fcinfo->arg[6], fcinfo->arg[7]);
682+
returnValue = (char *) (*user_fn) (fcinfo->arg[0],
683+
fcinfo->arg[1],
684+
fcinfo->arg[2],
685+
fcinfo->arg[3],
686+
fcinfo->arg[4],
687+
fcinfo->arg[5],
688+
fcinfo->arg[6],
689+
fcinfo->arg[7]);
672690
break;
673691
case 9:
674-
returnValue = (*user_fn) (fcinfo->arg[0], fcinfo->arg[1],
675-
fcinfo->arg[2], fcinfo->arg[3],
676-
fcinfo->arg[4], fcinfo->arg[5],
677-
fcinfo->arg[6], fcinfo->arg[7],
678-
fcinfo->arg[8]);
692+
returnValue = (char *) (*user_fn) (fcinfo->arg[0],
693+
fcinfo->arg[1],
694+
fcinfo->arg[2],
695+
fcinfo->arg[3],
696+
fcinfo->arg[4],
697+
fcinfo->arg[5],
698+
fcinfo->arg[6],
699+
fcinfo->arg[7],
700+
fcinfo->arg[8]);
679701
break;
680702
case 10:
681-
returnValue = (*user_fn) (fcinfo->arg[0], fcinfo->arg[1],
682-
fcinfo->arg[2], fcinfo->arg[3],
683-
fcinfo->arg[4], fcinfo->arg[5],
684-
fcinfo->arg[6], fcinfo->arg[7],
685-
fcinfo->arg[8], fcinfo->arg[9]);
703+
returnValue = (char *) (*user_fn) (fcinfo->arg[0],
704+
fcinfo->arg[1],
705+
fcinfo->arg[2],
706+
fcinfo->arg[3],
707+
fcinfo->arg[4],
708+
fcinfo->arg[5],
709+
fcinfo->arg[6],
710+
fcinfo->arg[7],
711+
fcinfo->arg[8],
712+
fcinfo->arg[9]);
686713
break;
687714
case 11:
688-
returnValue = (*user_fn) (fcinfo->arg[0], fcinfo->arg[1],
689-
fcinfo->arg[2], fcinfo->arg[3],
690-
fcinfo->arg[4], fcinfo->arg[5],
691-
fcinfo->arg[6], fcinfo->arg[7],
692-
fcinfo->arg[8], fcinfo->arg[9],
693-
fcinfo->arg[10]);
715+
returnValue = (char *) (*user_fn) (fcinfo->arg[0],
716+
fcinfo->arg[1],
717+
fcinfo->arg[2],
718+
fcinfo->arg[3],
719+
fcinfo->arg[4],
720+
fcinfo->arg[5],
721+
fcinfo->arg[6],
722+
fcinfo->arg[7],
723+
fcinfo->arg[8],
724+
fcinfo->arg[9],
725+
fcinfo->arg[10]);
694726
break;
695727
case 12:
696-
returnValue = (*user_fn) (fcinfo->arg[0], fcinfo->arg[1],
697-
fcinfo->arg[2], fcinfo->arg[3],
698-
fcinfo->arg[4], fcinfo->arg[5],
699-
fcinfo->arg[6], fcinfo->arg[7],
700-
fcinfo->arg[8], fcinfo->arg[9],
701-
fcinfo->arg[10], fcinfo->arg[11]);
728+
returnValue = (char *) (*user_fn) (fcinfo->arg[0],
729+
fcinfo->arg[1],
730+
fcinfo->arg[2],
731+
fcinfo->arg[3],
732+
fcinfo->arg[4],
733+
fcinfo->arg[5],
734+
fcinfo->arg[6],
735+
fcinfo->arg[7],
736+
fcinfo->arg[8],
737+
fcinfo->arg[9],
738+
fcinfo->arg[10],
739+
fcinfo->arg[11]);
702740
break;
703741
case 13:
704-
returnValue = (*user_fn) (fcinfo->arg[0], fcinfo->arg[1],
705-
fcinfo->arg[2], fcinfo->arg[3],
706-
fcinfo->arg[4], fcinfo->arg[5],
707-
fcinfo->arg[6], fcinfo->arg[7],
708-
fcinfo->arg[8], fcinfo->arg[9],
709-
fcinfo->arg[10], fcinfo->arg[11],
710-
fcinfo->arg[12]);
742+
returnValue = (char *) (*user_fn) (fcinfo->arg[0],
743+
fcinfo->arg[1],
744+
fcinfo->arg[2],
745+
fcinfo->arg[3],
746+
fcinfo->arg[4],
747+
fcinfo->arg[5],
748+
fcinfo->arg[6],
749+
fcinfo->arg[7],
750+
fcinfo->arg[8],
751+
fcinfo->arg[9],
752+
fcinfo->arg[10],
753+
fcinfo->arg[11],
754+
fcinfo->arg[12]);
711755
break;
712756
case 14:
713-
returnValue = (*user_fn) (fcinfo->arg[0], fcinfo->arg[1],
714-
fcinfo->arg[2], fcinfo->arg[3],
715-
fcinfo->arg[4], fcinfo->arg[5],
716-
fcinfo->arg[6], fcinfo->arg[7],
717-
fcinfo->arg[8], fcinfo->arg[9],
718-
fcinfo->arg[10], fcinfo->arg[11],
719-
fcinfo->arg[12], fcinfo->arg[13]);
757+
returnValue = (char *) (*user_fn) (fcinfo->arg[0],
758+
fcinfo->arg[1],
759+
fcinfo->arg[2],
760+
fcinfo->arg[3],
761+
fcinfo->arg[4],
762+
fcinfo->arg[5],
763+
fcinfo->arg[6],
764+
fcinfo->arg[7],
765+
fcinfo->arg[8],
766+
fcinfo->arg[9],
767+
fcinfo->arg[10],
768+
fcinfo->arg[11],
769+
fcinfo->arg[12],
770+
fcinfo->arg[13]);
720771
break;
721772
case 15:
722-
returnValue = (*user_fn) (fcinfo->arg[0], fcinfo->arg[1],
723-
fcinfo->arg[2], fcinfo->arg[3],
724-
fcinfo->arg[4], fcinfo->arg[5],
725-
fcinfo->arg[6], fcinfo->arg[7],
726-
fcinfo->arg[8], fcinfo->arg[9],
727-
fcinfo->arg[10], fcinfo->arg[11],
728-
fcinfo->arg[12], fcinfo->arg[13],
729-
fcinfo->arg[14]);
773+
returnValue = (char *) (*user_fn) (fcinfo->arg[0],
774+
fcinfo->arg[1],
775+
fcinfo->arg[2],
776+
fcinfo->arg[3],
777+
fcinfo->arg[4],
778+
fcinfo->arg[5],
779+
fcinfo->arg[6],
780+
fcinfo->arg[7],
781+
fcinfo->arg[8],
782+
fcinfo->arg[9],
783+
fcinfo->arg[10],
784+
fcinfo->arg[11],
785+
fcinfo->arg[12],
786+
fcinfo->arg[13],
787+
fcinfo->arg[14]);
730788
break;
731789
case 16:
732-
returnValue = (*user_fn) (fcinfo->arg[0], fcinfo->arg[1],
733-
fcinfo->arg[2], fcinfo->arg[3],
734-
fcinfo->arg[4], fcinfo->arg[5],
735-
fcinfo->arg[6], fcinfo->arg[7],
736-
fcinfo->arg[8], fcinfo->arg[9],
737-
fcinfo->arg[10], fcinfo->arg[11],
738-
fcinfo->arg[12], fcinfo->arg[13],
739-
fcinfo->arg[14], fcinfo->arg[15]);
790+
returnValue = (char *) (*user_fn) (fcinfo->arg[0],
791+
fcinfo->arg[1],
792+
fcinfo->arg[2],
793+
fcinfo->arg[3],
794+
fcinfo->arg[4],
795+
fcinfo->arg[5],
796+
fcinfo->arg[6],
797+
fcinfo->arg[7],
798+
fcinfo->arg[8],
799+
fcinfo->arg[9],
800+
fcinfo->arg[10],
801+
fcinfo->arg[11],
802+
fcinfo->arg[12],
803+
fcinfo->arg[13],
804+
fcinfo->arg[14],
805+
fcinfo->arg[15]);
740806
break;
741807
default:
742808

0 commit comments

Comments
 (0)