summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author arbee <rb6502@users.noreply.github.com>2023-05-05 19:06:52 -0400
committer arbee <rb6502@users.noreply.github.com>2023-05-05 19:06:52 -0400
commit5aa5f11fb5ae501bf9487124b7bf9bfdf642480a (patch)
treeba205bac272d67a5ab64a93dfcdff10d0d519ea1
parentb747acec69c0129ad15f14e6cea2dfa4f67e3a6e (diff)
xbox_nv2a.cpp: worked around another GCC 13.1 error. [R. Belmont]
-rw-r--r--src/mame/shared/xbox_nv2a.cpp20
1 files changed, 19 insertions, 1 deletions
diff --git a/src/mame/shared/xbox_nv2a.cpp b/src/mame/shared/xbox_nv2a.cpp
index d299e57705e..74cdc8c0b15 100644
--- a/src/mame/shared/xbox_nv2a.cpp
+++ b/src/mame/shared/xbox_nv2a.cpp
@@ -2501,7 +2501,25 @@ void nv2a_renderer::compute_supersample_factors(float &horizontal, float &vertic
void nv2a_renderer::convert_vertices(vertex_nv *source, nv2avertex_t *destination)
{
- vertex_nv vert;
+/*
+ FIXME: GCC 13.1 errored this without the static on "vert". I believe this is a real bug, but I don't
+ know enough about what this code is doing to be confident.
+
+ In member function ‘void vertex_program_simulator::set_data(vertex_nv*, vertex_nv*)’,
+ inlined from ‘void vertex_program_simulator::process(int, vertex_nv*, vertex_nv*, int)’ at ../../../../../src/mame/shared/xbox_nv2a.cpp:643:10,
+ inlined from ‘void nv2a_renderer::convert_vertices(vertex_nv*, nv2avertex_t*)’ at ../../../../../src/mame/shared/xbox_nv2a.cpp:2546:29:
+../../../../../src/mame/shared/xbox_nv2a.cpp:449:16: error: storing the address of local variable ‘vert’ in ‘*&this_144(D)->vertexprogram.exec.vertex_program_simulator::output’ [-Werror=dangling-pointer=]
+ 449 | output = out;
+ | ~~~~~~~^~~~~
+../../../../../src/mame/shared/xbox_nv2a.cpp: In member function ‘void nv2a_renderer::convert_vertices(vertex_nv*, nv2avertex_t*)’:
+../../../../../src/mame/shared/xbox_nv2a.cpp:2504:19: note: ‘vert’ declared here
+ 2522 | vertex_nv vert;
+ | ^~~~
+../../../../../src/mame/shared/xbox_nv2a.cpp:2502:82: note: ‘this’ declared here
+ 2502 | void nv2a_renderer::convert_vertices(vertex_nv *source, nv2avertex_t *destination)
+ | ^
+*/
+ static vertex_nv vert;
int u;
float v[4];
double c;