forked from Imagelibrary/binutils-gdb
When building the erc32 simulator I get a few warnings like this:
/tmp/build/sim/../../src/sim/erc32/exec.c:1377:21: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
1377 | sregs->fs[rd] = *((float32 *) & ddata[0]);
| ~^~~~~~~~~~~~~~~~~~~~~~~
The type of '& ddata[0]' will be 'uint32_t *', which is what triggers
the warning.
This commit makes use of memcpy when performing the type-punning,
which resolves the above warnings.
With this change, I now see no warnings when compiling exec.c, which
means that the line in Makefile.in that disables -Werror can be
removed.
There should be no change in behaviour after this commit.
52 lines
1.8 KiB
Makefile
52 lines
1.8 KiB
Makefile
# Makefile template for Configure for the erc32sim library.
|
|
# Copyright (C) 1993-2022 Free Software Foundation, Inc.
|
|
# Written by Cygnus Support
|
|
# Modified by J.Gaisler ESA/ESTEC
|
|
#
|
|
# This program is free software; you can redistribute it and/or modify
|
|
# it under the terms of the GNU General Public License as published by
|
|
# the Free Software Foundation; either version 3 of the License, or
|
|
# (at your option) any later version.
|
|
#
|
|
# This program is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
## COMMON_PRE_CONFIG_FRAG
|
|
|
|
READLINE_SRC = $(srcroot)/readline/readline
|
|
|
|
SIM_OBJS = exec.o erc32.o func.o help.o float.o interf.o
|
|
SIM_RUN_OBJS = sis.o
|
|
SIM_EXTRA_CFLAGS = $(READLINE_CFLAGS)
|
|
SIM_EXTRA_LIBS = $(READLINE_LIB) $(TERMCAP_LIB) -lm
|
|
SIM_EXTRA_INSTALL = install-sis
|
|
SIM_EXTRA_CLEAN = clean-sis
|
|
|
|
# UARTS run at about 115200 baud (simulator time). Add -DFAST_UART to
|
|
# CFLAGS if faster (infinite) UART speed is desired. Might affect the
|
|
# behaviour of UART interrupt routines ...
|
|
SIM_EXTRA_CFLAGS += -DFAST_UART -I$(srcroot)
|
|
|
|
## COMMON_POST_CONFIG_FRAG
|
|
|
|
# `sis' doesn't need interf.o.
|
|
SIS_OFILES = exec.o erc32.o func.o help.o float.o
|
|
|
|
all: sis$(EXEEXT)
|
|
sis$(EXEEXT): sis.o $(SIS_OFILES) libsim.a $(LIBDEPS)
|
|
$(ECHO_CCLD) $(CC) $(ALL_CFLAGS) -o sis$(EXEEXT) \
|
|
sis.o $(SIS_OFILES) libsim.a $(EXTRA_LIBS)
|
|
|
|
# Copy the files into directories where they will be run.
|
|
install-sis: installdirs
|
|
n=`echo sis | sed '$(program_transform_name)'`; \
|
|
$(INSTALL_PROGRAM) sis$(EXEEXT) $(DESTDIR)$(bindir)/$$n$(EXEEXT)
|
|
|
|
clean-sis:
|
|
rm -f sis
|