1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-04 12:00:25 +00:00

Core: Sidestep GCC false-positives

(cherry picked from commit acdb8667b5)

Adds some more fixes for 4.5.

Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
This commit is contained in:
Thaddeus Crews
2025-10-17 15:21:57 -05:00
committed by Rémi Verschelde
parent 6b017abaa4
commit 36e2050eea
3 changed files with 10 additions and 1 deletions

View File

@@ -2350,6 +2350,10 @@ void Image::initialize_data(const char **p_xpm) {
} break;
case READING_PIXELS: {
int y = line - colormap_size - 1;
#if defined(__GNUC__) && !defined(__clang__)
#pragma GCC diagnostic push
#pragma GCC diagnostic warning "-Wstringop-overflow=0"
#endif
for (int x = 0; x < size_width; x++) {
char pixelstr[6] = { 0, 0, 0, 0, 0, 0 };
for (int i = 0; i < pixelchars; i++) {
@@ -2364,6 +2368,9 @@ void Image::initialize_data(const char **p_xpm) {
}
_put_pixelb(x, y, pixel_size, data_write, pixel);
}
#if defined(__GNUC__) && !defined(__clang__)
#pragma GCC diagnostic pop
#endif
if (y == (size_height - 1)) {
status = DONE;

View File

@@ -1938,7 +1938,8 @@ void TileMapLayer::set_tile_data(TileMapLayer::DataFormat p_format, const Vector
for (int i = 0; i < c; i += offset) {
const uint8_t *ptr = (const uint8_t *)&r[i];
uint8_t local[12];
for (int j = 0; j < ((p_format >= TileMapLayer::FORMAT_2) ? 12 : 8); j++) {
const int buffer_size = (p_format >= TileMapLayer::FORMAT_2) ? 12 : 8;
for (int j = 0; j < buffer_size; j++) {
local[j] = ptr[j];
}

View File

@@ -157,6 +157,7 @@ Node *SceneState::instantiate(GenEditState p_edit_state) const {
const NodeData *nd = &nodes[0];
Node **ret_nodes = (Node **)alloca(sizeof(Node *) * nc);
ret_nodes[0] = nullptr; // Sidesteps "maybe uninitialized" false-positives on GCC.
bool gen_node_path_cache = p_edit_state != GEN_EDIT_STATE_DISABLED && node_path_cache.is_empty();