Open kostik1337 opened 3 years ago
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
something.debug is compiling OK, but release is not