something
something copied to clipboard
Compilation error in aids.hpp
something.debug is compiling OK, but release is not
$ make
cc -Wall -Wextra -Werror -pedantic -I. -x c -ggdb -DSTBI_ONLY_PNG -DSTB_IMAGE_IMPLEMENTATION -c -o stb_image.o src/stb_image.h
g++ -Wall -Wextra -Werror -pedantic -I. -std=c++17 -fno-exceptions -Wno-missing-braces -Wswitch-enum -O0 -fno-builtin -ggdb -o config_typer src/config_typer.cpp
"./config_typer" ./assets/vars.conf > config_types.hpp
g++ -Wall -Wextra -Werror -pedantic -I. -std=c++17 -fno-exceptions -Wno-missing-braces -Wswitch-enum `pkg-config --cflags sdl2` -O0 -fno-builtin -ggdb -o something.debug src/something.cpp stb_image.o `pkg-config --libs sdl2 ` -lm
g++ -Wall -Wextra -Werror -pedantic -I. -std=c++17 -fno-exceptions -Wno-missing-braces -Wswitch-enum `pkg-config --cflags sdl2` -O0 -fno-builtin -ggdb -o config_baker src/config_baker.cpp `pkg-config --libs sdl2 ` -lm
"./config_baker" > baked_config.hpp
g++ -Wall -Wextra -Werror -pedantic -I. -std=c++17 -fno-exceptions -Wno-missing-braces -Wswitch-enum `pkg-config --cflags sdl2` -DSOMETHING_RELEASE -O3 -ggdb -o something.release src/something.cpp `pkg-config --libs sdl2 ` -lm
In file included from src/something.cpp:14:
src/aids.hpp: In function ‘void command_history(Game*, aids::String_View)’:
src/aids.hpp:585:25: error: ‘snprintf’ argument 4 may overlap destination object ‘game’ [-Werror=restrict]
585 | int n = snprintf(
| ~~~~~~~~^
586 | buffer->data + buffer->size,
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
587 | buffer->capacity - buffer->size,
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
588 | "%.*s", (int) view.count, view.data);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from src/something.cpp:69:
src/something_commands.cpp:153:28: note: destination object referenced by ‘restrict’-qualified argument 1 was declared here
153 | void command_history(Game *game, String_View)
| ~~~~~~^~~~
cc1plus: all warnings being treated as errors
make: *** [Makefile:23: something.release] Error 1
$ g++ --version
g++ (GCC) 10.2.0
Copyright (C) 2020 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
$ lsb_release -a
LSB Version: 1.4
Distributor ID: Arch
Description: Arch Linux
Release: rolling
Codename: n/a
Duplicate of #237