Patchwork [BUILDROBOT] mcore-elf: Fix bad declaration

login
register
mail settings
Submitter Jan-Benedict Glaw
Date Aug. 31, 2014, 10:51 p.m.
Message ID <20140831225150.GV12042@lug-owl.de>
Download mbox | patch
Permalink /patch/384599/
State New
Headers show

Comments

Jan-Benedict Glaw - Aug. 31, 2014, 10:51 p.m.
Hi!

This patch fixes a non-matching declaration, which lets G++ 4.8.1 (as of
Debian's g++ package) barf:

g++ -c   -g -O2 -DIN_GCC  -DCROSS_DIRECTORY_STRUCTURE  -fno-exceptions -fno-rtti -fasynchronous-unwind-tables -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wmissing-format-attribute -Woverloaded-virtual -pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings -fno-common  -DHAVE_CONFIG_H -I. -I. -I/home/vaxbuild/repos/gcc/gcc -I/home/vaxbuild/repos/gcc/gcc/. -I/home/vaxbuild/repos/gcc/gcc/../include -I/home/vaxbuild/repos/gcc/gcc/../libcpp/include  -I/home/vaxbuild/repos/gcc/gcc/../libdecnumber -I/home/vaxbuild/repos/gcc/gcc/../libdecnumber/dpd -I../libdecnumber -I/home/vaxbuild/repos/gcc/gcc/../libbacktrace    -o mcore.o -MT mcore.o -MMD -MP -MF ./.deps/mcore.TPo /home/vaxbuild/repos/gcc/gcc/config/mcore/mcore.c
/home/vaxbuild/repos/gcc/gcc/config/mcore/mcore.c: In function ‘const char* output_inline_const(machine_mode, rtx_def**)’:
/home/vaxbuild/repos/gcc/gcc/config/mcore/mcore.c:1216:82: warning: format ‘%ld’ expects argument of type ‘long int’, but argument 5 has type ‘long long int’ [-Wformat=]
       sprintf (buf, "%s\n\tnot\t%s\t// %ld 0x%lx", load_op, dst_fmt, value, value);
                                                                                  ^
/home/vaxbuild/repos/gcc/gcc/config/mcore/mcore.c:1216:82: warning: format ‘%lx’ expects argument of type ‘long unsigned int’, but argument 6 has type ‘long long int’ [-Wformat=]
/home/vaxbuild/repos/gcc/gcc/config/mcore/mcore.c:1219:87: warning: format ‘%ld’ expects argument of type ‘long int’, but argument 5 has type ‘long long int’ [-Wformat=]
       sprintf (buf, "%s\n\taddi\t%s,%%2\t// %ld 0x%lx", load_op, dst_fmt, value, value);
                                                                                       ^
/home/vaxbuild/repos/gcc/gcc/config/mcore/mcore.c:1219:87: warning: format ‘%lx’ expects argument of type ‘long unsigned int’, but argument 6 has type ‘long long int’ [-Wformat=]
/home/vaxbuild/repos/gcc/gcc/config/mcore/mcore.c:1222:87: warning: format ‘%ld’ expects argument of type ‘long int’, but argument 5 has type ‘long long int’ [-Wformat=]
       sprintf (buf, "%s\n\tsubi\t%s,%%2\t// %ld 0x%lx", load_op, dst_fmt, value, value);
                                                                                       ^
/home/vaxbuild/repos/gcc/gcc/config/mcore/mcore.c:1222:87: warning: format ‘%lx’ expects argument of type ‘long unsigned int’, but argument 6 has type ‘long long int’ [-Wformat=]
/home/vaxbuild/repos/gcc/gcc/config/mcore/mcore.c:1226:88: warning: format ‘%ld’ expects argument of type ‘long int’, but argument 5 has type ‘long long int’ [-Wformat=]
       sprintf (buf, "%s\n\trsubi\t%s,%%2\t// %ld 0x%lx", load_op, dst_fmt, value, value);
                                                                                        ^
/home/vaxbuild/repos/gcc/gcc/config/mcore/mcore.c:1226:88: warning: format ‘%lx’ expects argument of type ‘long unsigned int’, but argument 6 has type ‘long long int’ [-Wformat=]
/home/vaxbuild/repos/gcc/gcc/config/mcore/mcore.c:1229:89: warning: format ‘%ld’ expects argument of type ‘long int’, but argument 5 has type ‘long long int’ [-Wformat=]
       sprintf (buf, "%s\n\tbseti\t%s,%%P2\t// %ld 0x%lx", load_op, dst_fmt, value, value);
                                                                                         ^
/home/vaxbuild/repos/gcc/gcc/config/mcore/mcore.c:1229:89: warning: format ‘%lx’ expects argument of type ‘long unsigned int’, but argument 6 has type ‘long long int’ [-Wformat=]
/home/vaxbuild/repos/gcc/gcc/config/mcore/mcore.c:1232:89: warning: format ‘%ld’ expects argument of type ‘long int’, but argument 5 has type ‘long long int’ [-Wformat=]
       sprintf (buf, "%s\n\tbclri\t%s,%%Q2\t// %ld 0x%lx", load_op, dst_fmt, value, value);
                                                                                         ^
/home/vaxbuild/repos/gcc/gcc/config/mcore/mcore.c:1232:89: warning: format ‘%lx’ expects argument of type ‘long unsigned int’, but argument 6 has type ‘long long int’ [-Wformat=]
/home/vaxbuild/repos/gcc/gcc/config/mcore/mcore.c:1235:88: warning: format ‘%ld’ expects argument of type ‘long int’, but argument 5 has type ‘long long int’ [-Wformat=]
       sprintf (buf, "%s\n\trotli\t%s,%%2\t// %ld 0x%lx", load_op, dst_fmt, value, value);
                                                                                        ^
/home/vaxbuild/repos/gcc/gcc/config/mcore/mcore.c:1235:88: warning: format ‘%lx’ expects argument of type ‘long unsigned int’, but argument 6 has type ‘long long int’ [-Wformat=]
/home/vaxbuild/repos/gcc/gcc/config/mcore/mcore.c:1238:87: warning: format ‘%ld’ expects argument of type ‘long int’, but argument 5 has type ‘long long int’ [-Wformat=]
       sprintf (buf, "%s\n\tlsli\t%s,%%2\t// %ld 0x%lx", load_op, dst_fmt, value, value);
                                                                                       ^
/home/vaxbuild/repos/gcc/gcc/config/mcore/mcore.c:1238:87: warning: format ‘%lx’ expects argument of type ‘long unsigned int’, but argument 6 has type ‘long long int’ [-Wformat=]
/home/vaxbuild/repos/gcc/gcc/config/mcore/mcore.c:1241:94: warning: format ‘%ld’ expects argument of type ‘long int’, but argument 6 has type ‘long long int’ [-Wformat=]
       sprintf (buf, "%s\n\tixh\t%s,%s\t// %ld 0x%lx", load_op, dst_fmt, dst_fmt, value, value);
                                                                                              ^
/home/vaxbuild/repos/gcc/gcc/config/mcore/mcore.c:1241:94: warning: format ‘%lx’ expects argument of type ‘long unsigned int’, but argument 7 has type ‘long long int’ [-Wformat=]
/home/vaxbuild/repos/gcc/gcc/config/mcore/mcore.c:1244:94: warning: format ‘%ld’ expects argument of type ‘long int’, but argument 6 has type ‘long long int’ [-Wformat=]
       sprintf (buf, "%s\n\tixw\t%s,%s\t// %ld 0x%lx", load_op, dst_fmt, dst_fmt, value, value);
                                                                                              ^
/home/vaxbuild/repos/gcc/gcc/config/mcore/mcore.c:1244:94: warning: format ‘%lx’ expects argument of type ‘long unsigned int’, but argument 7 has type ‘long long int’ [-Wformat=]
/home/vaxbuild/repos/gcc/gcc/config/mcore/mcore.c: At global scope:
/home/vaxbuild/repos/gcc/gcc/config/mcore/mcore.c:100:19: warning: ‘int try_constant_tricks(long int, long long int*, long long int*)’ used but never defined [enabled by default]
 static int        try_constant_tricks           (long, HOST_WIDE_INT *, HOST_WIDE_INT *);
                   ^
[...]
g++   -g -O2 -DIN_GCC  -DCROSS_DIRECTORY_STRUCTURE  -fno-exceptions -fno-rtti -fasynchronous-unwind-tables -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wmissing-format-attribute -Woverloaded-virtual -pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings -fno-common  -DHAVE_CONFIG_H -static-libstdc++ -static-libgcc  -o cc1 c/c-lang.o c-family/stub-objc.o attribs.o c/c-errors.o c/c-decl.o c/c-typeck.o c/c-convert.o c/c-aux-info.o c/c-objc-common.o c/c-parser.o c/c-array-notation.o c-family/c-common.o c-family/c-cppbuiltin.o c-family/c-dump.o c-family/c-format.o c-family/c-gimplify.o c-family/c-lex.o c-family/c-omp.o c-family/c-opts.o c-family/c-pch.o c-family/c-ppoutput.o c-family/c-pragma.o c-family/c-pretty-print.o c-family/c-semantics.o c-family/c-ada-spec.o c-family/c-cilkplus.o c-family/array-notation-common.o c-family/cilk.o c-family/c-ubsan.o default-c.o \
  cc1-checksum.o libbackend.a main.o tree-browser.o libcommon-target.a libcommon.a ../libcpp/libcpp.a ../libdecnumber/libdecnumber.a libcommon.a ../libcpp/libcpp.a   ../libbacktrace/.libs/libbacktrace.a ../libiberty/libiberty.a ../libdecnumber/libdecnumber.a    -lmpc -lmpfr -lgmp -rdynamic -ldl  -L../zlib -lz
libbackend.a(mcore.o): In function `mcore_const_ok_for_inline':
/home/vaxbuild/repos/gcc/gcc/config/mcore/mcore.c:751: undefined reference to `try_constant_tricks(long, long long*, long long*)'
libbackend.a(mcore.o): In function `mcore_const_ok_for_inline(long long)':
/home/vaxbuild/repos/gcc/gcc/config/mcore/mcore.c:751: undefined reference to `try_constant_tricks(long, long long*, long long*)'
libbackend.a(mcore.o): In function `mcore_const_trick_uses_not(long long)':
/home/vaxbuild/repos/gcc/gcc/config/mcore/mcore.c:761: undefined reference to `try_constant_tricks(long, long long*, long long*)'
libbackend.a(mcore.o): In function `mcore_const_ok_for_inline':
/home/vaxbuild/repos/gcc/gcc/config/mcore/mcore.c:751: undefined reference to `try_constant_tricks(long, long long*, long long*)'
collect2: error: ld returned 1 exit status
make[1]: *** [cc1] Error 1
make[1]: Leaving directory `/home/vaxbuild/build/mcore-elf/build-gcc/gcc'
make: *** [all-gcc] Error 2



This patch fixes only the wrong declaration of try_constant_tricks().
Committed as obvious, including a small whitespace fix in the
following declaration. It doesn't fix the other long vs. long long
warnings though...

2014-09-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>

	* config/mcore/mcore.c (try_constant_tricks): Fix declaration.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@214772 138bc75d-0d04-0410-961f-82ee72b054a4

Patch

diff --git a/gcc/config/mcore/mcore.c b/gcc/config/mcore/mcore.c
index b6e5f75..f96be21 100644
--- a/gcc/config/mcore/mcore.c
+++ b/gcc/config/mcore/mcore.c
@@ -97,7 +97,7 @@  cond_type;
 
 static void       output_stack_adjust           (int, int);
 static int        calc_live_regs                (int *);
-static int        try_constant_tricks           (long, HOST_WIDE_INT *, HOST_WIDE_INT *);
+static int        try_constant_tricks           (HOST_WIDE_INT, HOST_WIDE_INT *, HOST_WIDE_INT *);
 static const char *     output_inline_const     (enum machine_mode, rtx *);
 static void       layout_mcore_frame            (struct mcore_frame *);
 static void       mcore_setup_incoming_varargs	(cumulative_args_t, enum machine_mode, tree, int *, int);
@@ -122,9 +122,9 @@  static bool       mcore_print_operand_punct_valid_p (unsigned char code);
 static void       mcore_unique_section	        (tree, int);
 static void mcore_encode_section_info		(tree, rtx, int);
 static const char *mcore_strip_name_encoding	(const char *);
-static int        mcore_const_costs            	(rtx, RTX_CODE);
-static int        mcore_and_cost               	(rtx);
-static int        mcore_ior_cost               	(rtx);
+static int        mcore_const_costs             (rtx, RTX_CODE);
+static int        mcore_and_cost                (rtx);
+static int        mcore_ior_cost                (rtx);
 static bool       mcore_rtx_costs		(rtx, int, int, int,
 						 int *, bool);
 static void       mcore_external_libcall	(rtx);