This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[gcc-3_4-basic-improvements-branch] Patch for prototype warning w/dsp16xx


The dsp16xx port had a prototype warning in every file compiled coming
from a function pointer variable declaration in dsp16xx-protos.h:

 > config/dsp16xx/dsp16xx-protos.h:84: warning: function declaration isn't a prototype

Also this one from just dsp16xx.c:

 > config/dsp16xx/dsp16xx.c:61: warning: function declaration isn't a prototype

The problem is that the function pointer is called with different
arguments, sometimes 3 args sometimes just 1, so I couldn't just add
arguments to the prototype because it had to remain ambiguous when
used this way.

Since the function pointer was only ever set to two different
functions, I instead changed the variable to a bool and called the
functions directly wherever necessary.

Tested by cross-compiling cc1 to dsp16xx-unknown-elf.  Ok to install
on the gcc-3_4-basic-improvements-branch?

		Thanks,
		--Kaveh


2002-09-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* dsp16xx-protos.h (dsp16xx_compare_gen): Change to bool.
	* dsp16xx.c (dsp16xx_compare_gen): Likewise.
	* dsp16xx.md: Treat dsp16xx_compare_gen as a bool.  Call functions
	directly instead of using a function pointer.

diff -rup orig/egcc-bib-CVS20020901/gcc/config/dsp16xx/dsp16xx-protos.h egcc-bib-CVS20020901/gcc/config/dsp16xx/dsp16xx-protos.h
--- orig/egcc-bib-CVS20020901/gcc/config/dsp16xx/dsp16xx-protos.h	2001-12-17 10:05:30.000000000 -0500
+++ egcc-bib-CVS20020901/gcc/config/dsp16xx/dsp16xx-protos.h	2002-09-02 09:26:26.783639410 -0400
@@ -81,7 +81,7 @@ extern void asm_output_float PARAMS ((FI
 extern void dsp16xx_file_start PARAMS ((void));
 extern void coff_dsp16xx_file_start PARAMS ((FILE *));
 extern void luxworks_dsp16xx_file_start PARAMS ((FILE *));
-extern struct rtx_def *(*dsp16xx_compare_gen) PARAMS (());
+extern bool dsp16xx_compare_gen;
 extern int hard_regno_mode_ok PARAMS ((int, enum machine_mode));
 extern enum reg_class dsp16xx_reg_class_from_letter PARAMS ((int));
 extern int regno_reg_class PARAMS ((int));
diff -rup orig/egcc-bib-CVS20020901/gcc/config/dsp16xx/dsp16xx.c egcc-bib-CVS20020901/gcc/config/dsp16xx/dsp16xx.c
--- orig/egcc-bib-CVS20020901/gcc/config/dsp16xx/dsp16xx.c	2002-08-20 22:41:47.000000000 -0400
+++ egcc-bib-CVS20020901/gcc/config/dsp16xx/dsp16xx.c	2002-09-02 09:23:41.512474028 -0400
@@ -58,7 +58,7 @@ const char *save_chip_name;
 
 rtx dsp16xx_compare_op0;
 rtx dsp16xx_compare_op1;
-rtx (*dsp16xx_compare_gen) PARAMS (());
+bool dsp16xx_compare_gen;
 
 static const char *fp;
 static const char *sp;
diff -rup orig/egcc-bib-CVS20020901/gcc/config/dsp16xx/dsp16xx.md egcc-bib-CVS20020901/gcc/config/dsp16xx/dsp16xx.md
--- orig/egcc-bib-CVS20020901/gcc/config/dsp16xx/dsp16xx.md	2002-08-11 15:24:07.000000000 -0400
+++ egcc-bib-CVS20020901/gcc/config/dsp16xx/dsp16xx.md	2002-09-02 09:22:13.513956258 -0400
@@ -70,7 +70,7 @@
   ""
   "
 {
-  dsp16xx_compare_gen = gen_tst_reg;
+  dsp16xx_compare_gen = false;
   dsp16xx_compare_op0 = operands[0];
   dsp16xx_compare_op1 = const0_rtx;
   DONE;
@@ -89,7 +89,7 @@
   ""
   "
 {
-  dsp16xx_compare_gen = gen_tst_reg;
+  dsp16xx_compare_gen = false;
   dsp16xx_compare_op0 = operands[0];
   dsp16xx_compare_op1 = const0_rtx;
   DONE;
@@ -181,7 +181,7 @@
   if (GET_CODE (operands[1]) == CONST_INT)
     operands[1] = force_reg (HImode, operands[1]);
 
-  dsp16xx_compare_gen = gen_compare_reg;
+  dsp16xx_compare_gen = true;
   dsp16xx_compare_op0 = operands[0];
   dsp16xx_compare_op1 = operands[1];
   DONE;
@@ -266,7 +266,7 @@
  {
   if (operands[0])	/* Avoid unused code warning */
     {
-      dsp16xx_compare_gen = gen_compare_reg;
+      dsp16xx_compare_gen = true;
       dsp16xx_compare_op0 = operands[0];
       dsp16xx_compare_op1 = operands[1];
       DONE;
@@ -433,7 +433,7 @@
   if (!dsp16xx_cmphf3_libcall)
     dsp16xx_cmphf3_libcall = gen_rtx_SYMBOL_REF (Pmode, CMPHF3_LIBCALL);
 
-   dsp16xx_compare_gen = gen_compare_reg;
+   dsp16xx_compare_gen = true;
    dsp16xx_compare_op0 = operands[0];
    dsp16xx_compare_op1 = operands[1];
    emit_library_call (dsp16xx_cmphf3_libcall, 1, HImode, 2,
@@ -2397,10 +2397,10 @@
   ""
   "
 { 
-   if (dsp16xx_compare_gen == gen_compare_reg)
-     operands[1] = (*dsp16xx_compare_gen)(EQ, dsp16xx_compare_op0, dsp16xx_compare_op1);
+   if (dsp16xx_compare_gen)
+     operands[1] = gen_compare_reg (EQ, dsp16xx_compare_op0, dsp16xx_compare_op1);
    else
-     operands[1] = (*dsp16xx_compare_gen)(dsp16xx_compare_op0);
+     operands[1] = gen_tst_reg (dsp16xx_compare_op0);
 }")
 
 (define_expand "sne"
@@ -2409,10 +2409,10 @@
   ""
   "
 { 
-   if (dsp16xx_compare_gen == gen_compare_reg)
-     operands[1] = (*dsp16xx_compare_gen)(NE, dsp16xx_compare_op0, dsp16xx_compare_op1);
+   if (dsp16xx_compare_gen)
+     operands[1] = gen_compare_reg (NE, dsp16xx_compare_op0, dsp16xx_compare_op1);
    else
-     operands[1] = (*dsp16xx_compare_gen)(dsp16xx_compare_op0);
+     operands[1] = gen_tst_reg (dsp16xx_compare_op0);
 }")
 
 
@@ -2422,10 +2422,10 @@
   ""
   "
 { 
-   if (dsp16xx_compare_gen == gen_compare_reg)
-     operands[1] = (*dsp16xx_compare_gen)(GT, dsp16xx_compare_op0, dsp16xx_compare_op1);
+   if (dsp16xx_compare_gen)
+     operands[1] = gen_compare_reg (GT, dsp16xx_compare_op0, dsp16xx_compare_op1);
    else
-     operands[1] = (*dsp16xx_compare_gen)(dsp16xx_compare_op0);
+     operands[1] = gen_tst_reg (dsp16xx_compare_op0);
 }")
 
 
@@ -2435,10 +2435,10 @@
   ""
   "
 { 
-   if (dsp16xx_compare_gen == gen_compare_reg)
-     operands[1] = (*dsp16xx_compare_gen)(LT, dsp16xx_compare_op0, dsp16xx_compare_op1);
+   if (dsp16xx_compare_gen)
+     operands[1] = gen_compare_reg (LT, dsp16xx_compare_op0, dsp16xx_compare_op1);
    else
-     operands[1] = (*dsp16xx_compare_gen)(dsp16xx_compare_op0);
+     operands[1] = gen_tst_reg (dsp16xx_compare_op0);
 }")
 
 (define_expand "sge"
@@ -2447,10 +2447,10 @@
   ""
   "
 { 
-   if (dsp16xx_compare_gen == gen_compare_reg)
-     operands[1] = (*dsp16xx_compare_gen)(GE, dsp16xx_compare_op0, dsp16xx_compare_op1);
+   if (dsp16xx_compare_gen)
+     operands[1] = gen_compare_reg (GE, dsp16xx_compare_op0, dsp16xx_compare_op1);
    else
-     operands[1] = (*dsp16xx_compare_gen)(dsp16xx_compare_op0);
+     operands[1] = gen_tst_reg (dsp16xx_compare_op0);
 }")
 
 
@@ -2460,10 +2460,10 @@
   ""
   "
 { 
-   if (dsp16xx_compare_gen == gen_compare_reg)
-     operands[1] = (*dsp16xx_compare_gen)(LE, dsp16xx_compare_op0, dsp16xx_compare_op1);
+   if (dsp16xx_compare_gen)
+     operands[1] = gen_compare_reg (LE, dsp16xx_compare_op0, dsp16xx_compare_op1);
    else
-     operands[1] = (*dsp16xx_compare_gen)(dsp16xx_compare_op0);
+     operands[1] = gen_tst_reg (dsp16xx_compare_op0);
 }")
 
 
@@ -2473,10 +2473,10 @@
   ""
   "
 { 
-   if (dsp16xx_compare_gen == gen_compare_reg)
-     operands[1] = (*dsp16xx_compare_gen)(GTU, dsp16xx_compare_op0, dsp16xx_compare_op1);
+   if (dsp16xx_compare_gen)
+     operands[1] = gen_compare_reg (GTU, dsp16xx_compare_op0, dsp16xx_compare_op1);
    else
-     operands[1] = (*dsp16xx_compare_gen)(dsp16xx_compare_op0);
+     operands[1] = gen_tst_reg (dsp16xx_compare_op0);
 }")
 
 
@@ -2486,10 +2486,10 @@
   ""
   "
 { 
-   if (dsp16xx_compare_gen == gen_compare_reg)
-     operands[1] = (*dsp16xx_compare_gen)(LTU, dsp16xx_compare_op0, dsp16xx_compare_op1);
+   if (dsp16xx_compare_gen)
+     operands[1] = gen_compare_reg (LTU, dsp16xx_compare_op0, dsp16xx_compare_op1);
    else
-     operands[1] = (*dsp16xx_compare_gen)(dsp16xx_compare_op0);
+     operands[1] = gen_tst_reg (dsp16xx_compare_op0);
 }")
 
 
@@ -2499,10 +2499,10 @@
   ""
   "
 { 
-   if (dsp16xx_compare_gen == gen_compare_reg)
-     operands[1] = (*dsp16xx_compare_gen)(GEU, dsp16xx_compare_op0, dsp16xx_compare_op1);
+   if (dsp16xx_compare_gen)
+     operands[1] = gen_compare_reg (GEU, dsp16xx_compare_op0, dsp16xx_compare_op1);
    else
-     operands[1] = (*dsp16xx_compare_gen)(dsp16xx_compare_op0);
+     operands[1] = gen_tst_reg (dsp16xx_compare_op0);
 }")
 
 
@@ -2512,10 +2512,10 @@
   ""
   "
 { 
-   if (dsp16xx_compare_gen == gen_compare_reg)
-     operands[1] = (*dsp16xx_compare_gen)(LEU, dsp16xx_compare_op0, dsp16xx_compare_op1);
+   if (dsp16xx_compare_gen)
+     operands[1] = gen_compare_reg (LEU, dsp16xx_compare_op0, dsp16xx_compare_op1);
    else
-     operands[1] = (*dsp16xx_compare_gen)(dsp16xx_compare_op0);
+     operands[1] = gen_tst_reg (dsp16xx_compare_op0);
 }")
 
 
@@ -2539,10 +2539,10 @@
   ""
   "
 { 
-   if (dsp16xx_compare_gen == gen_compare_reg)
-     operands[1] = (*dsp16xx_compare_gen)(EQ, dsp16xx_compare_op0, dsp16xx_compare_op1);
+   if (dsp16xx_compare_gen)
+     operands[1] = gen_compare_reg (EQ, dsp16xx_compare_op0, dsp16xx_compare_op1);
    else
-     operands[1] = (*dsp16xx_compare_gen)(dsp16xx_compare_op0);
+     operands[1] = gen_tst_reg (dsp16xx_compare_op0);
 }")
 
 (define_expand "bne"
@@ -2554,10 +2554,10 @@
   ""
   "
 { 
-   if (dsp16xx_compare_gen == gen_compare_reg)
-     operands[1] = (*dsp16xx_compare_gen)(NE, dsp16xx_compare_op0, dsp16xx_compare_op1);
+   if (dsp16xx_compare_gen)
+     operands[1] = gen_compare_reg (NE, dsp16xx_compare_op0, dsp16xx_compare_op1);
    else
-     operands[1] = (*dsp16xx_compare_gen)(dsp16xx_compare_op0);
+     operands[1] = gen_tst_reg (dsp16xx_compare_op0);
 }")
 
 
@@ -2570,10 +2570,10 @@
   ""
   "
 { 
-   if (dsp16xx_compare_gen == gen_compare_reg)
-     operands[1] = (*dsp16xx_compare_gen)(GT, dsp16xx_compare_op0, dsp16xx_compare_op1);
+   if (dsp16xx_compare_gen)
+     operands[1] = gen_compare_reg (GT, dsp16xx_compare_op0, dsp16xx_compare_op1);
    else
-     operands[1] = (*dsp16xx_compare_gen)(dsp16xx_compare_op0);
+     operands[1] = gen_tst_reg (dsp16xx_compare_op0);
 }")
 
 
@@ -2586,10 +2586,10 @@
   ""
   "
 { 
-   if (dsp16xx_compare_gen == gen_compare_reg)
-     operands[1] = (*dsp16xx_compare_gen)(GE, dsp16xx_compare_op0, dsp16xx_compare_op1);
+   if (dsp16xx_compare_gen)
+     operands[1] = gen_compare_reg (GE, dsp16xx_compare_op0, dsp16xx_compare_op1);
    else
-     operands[1] = (*dsp16xx_compare_gen)(dsp16xx_compare_op0);
+     operands[1] = gen_tst_reg (dsp16xx_compare_op0);
 }")
 
 
@@ -2602,10 +2602,10 @@
   ""
   "
 { 
-   if (dsp16xx_compare_gen == gen_compare_reg)
-     operands[1] = (*dsp16xx_compare_gen)(LT, dsp16xx_compare_op0, dsp16xx_compare_op1);
+   if (dsp16xx_compare_gen)
+     operands[1] = gen_compare_reg (LT, dsp16xx_compare_op0, dsp16xx_compare_op1);
    else
-     operands[1] = (*dsp16xx_compare_gen)(dsp16xx_compare_op0);
+     operands[1] = gen_tst_reg (dsp16xx_compare_op0);
 }")
 
 
@@ -2618,10 +2618,10 @@
   ""
   "
 { 
-   if (dsp16xx_compare_gen == gen_compare_reg)
-     operands[1] = (*dsp16xx_compare_gen)(LE, dsp16xx_compare_op0, dsp16xx_compare_op1);
+   if (dsp16xx_compare_gen)
+     operands[1] = gen_compare_reg (LE, dsp16xx_compare_op0, dsp16xx_compare_op1);
    else
-     operands[1] = (*dsp16xx_compare_gen)(dsp16xx_compare_op0);
+     operands[1] = gen_tst_reg (dsp16xx_compare_op0);
 }")
 
 
@@ -2634,10 +2634,10 @@
   ""
   "
 { 
-   if (dsp16xx_compare_gen == gen_compare_reg)
-     operands[1] = (*dsp16xx_compare_gen)(GTU, dsp16xx_compare_op0, dsp16xx_compare_op1);
+   if (dsp16xx_compare_gen)
+     operands[1] = gen_compare_reg (GTU, dsp16xx_compare_op0, dsp16xx_compare_op1);
    else
-     operands[1] = (*dsp16xx_compare_gen)(dsp16xx_compare_op0);
+     operands[1] = gen_tst_reg (dsp16xx_compare_op0);
 }")
 
 
@@ -2650,10 +2650,10 @@
   ""
   "
 { 
-   if (dsp16xx_compare_gen == gen_compare_reg)
-     operands[1] = (*dsp16xx_compare_gen)(GEU, dsp16xx_compare_op0, dsp16xx_compare_op1);
+   if (dsp16xx_compare_gen)
+     operands[1] = gen_compare_reg (GEU, dsp16xx_compare_op0, dsp16xx_compare_op1);
    else
-     operands[1] = (*dsp16xx_compare_gen)(dsp16xx_compare_op0);
+     operands[1] = gen_tst_reg (dsp16xx_compare_op0);
 }")
 
 
@@ -2666,10 +2666,10 @@
   ""
   "
 { 
-   if (dsp16xx_compare_gen == gen_compare_reg)
-     operands[1] = (*dsp16xx_compare_gen)(LTU, dsp16xx_compare_op0, dsp16xx_compare_op1);
+   if (dsp16xx_compare_gen)
+     operands[1] = gen_compare_reg (LTU, dsp16xx_compare_op0, dsp16xx_compare_op1);
    else
-     operands[1] = (*dsp16xx_compare_gen)(dsp16xx_compare_op0);
+     operands[1] = gen_tst_reg (dsp16xx_compare_op0);
 }")
 
 
@@ -2682,10 +2682,10 @@
   ""
   "
 { 
-   if (dsp16xx_compare_gen == gen_compare_reg)
-     operands[1] = (*dsp16xx_compare_gen)(LEU, dsp16xx_compare_op0, dsp16xx_compare_op1);
+   if (dsp16xx_compare_gen)
+     operands[1] = gen_compare_reg (LEU, dsp16xx_compare_op0, dsp16xx_compare_op1);
    else
-     operands[1] = (*dsp16xx_compare_gen)(dsp16xx_compare_op0);
+     operands[1] = gen_tst_reg (dsp16xx_compare_op0);
 }")
 
 


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]