Skip to content

Commit d3c3b14

Browse files
committed
Fix: MSVC compilation warnings
1 parent c1897ca commit d3c3b14

File tree

3 files changed

+34
-14
lines changed

3 files changed

+34
-14
lines changed

c/lib.cpp

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ size_t fu_count_quality_levels(void) {
150150

151151
size_t fu_volume_any_pages(void) { return fu::get_ram_total_volume(); }
152152

153-
size_t fu_volume_huge_pages_in(size_t numa_node_index) {
153+
size_t fu_volume_huge_pages_in(FU_MAYBE_UNUSED_ size_t numa_node_index) {
154154
#if FU_ENABLE_NUMA
155155
size_t total_volume = 0;
156156
auto const &node = global_numa_topology.node(numa_node_index);
@@ -161,7 +161,7 @@ size_t fu_volume_huge_pages_in(size_t numa_node_index) {
161161
#endif
162162
}
163163

164-
size_t fu_volume_any_pages_in(size_t numa_node_index) {
164+
size_t fu_volume_any_pages_in(FU_MAYBE_UNUSED_ size_t numa_node_index) {
165165
#if FU_ENABLE_NUMA
166166
if (!globals_initialize()) return 0;
167167
if (numa_node_index >= global_numa_topology.nodes_count()) return 0;
@@ -177,8 +177,8 @@ size_t fu_volume_any_pages_in(size_t numa_node_index) {
177177

178178
#pragma region - Memory
179179

180-
void *fu_allocate_at_least( //
181-
size_t numa_node_index, size_t minimum_bytes, //
180+
void *fu_allocate_at_least( //
181+
FU_MAYBE_UNUSED_ size_t numa_node_index, size_t minimum_bytes, //
182182
size_t *allocated_bytes, size_t *bytes_per_page) {
183183

184184
#if FU_ENABLE_NUMA
@@ -198,7 +198,7 @@ void *fu_allocate_at_least( //
198198
#endif
199199
}
200200

201-
void *fu_allocate(size_t numa_node_index, size_t bytes) {
201+
void *fu_allocate(FU_MAYBE_UNUSED_ size_t numa_node_index, size_t bytes) {
202202

203203
#if FU_ENABLE_NUMA
204204
auto const &node = global_numa_topology.node(numa_node_index);
@@ -209,7 +209,7 @@ void *fu_allocate(size_t numa_node_index, size_t bytes) {
209209
#endif
210210
}
211211

212-
void fu_free(size_t numa_node_index, void *pointer, size_t bytes) {
212+
void fu_free(FU_MAYBE_UNUSED_ size_t numa_node_index, void *pointer, FU_MAYBE_UNUSED_ size_t bytes) {
213213
#if FU_ENABLE_NUMA
214214
auto const &node = global_numa_topology.node(numa_node_index);
215215
fu::linux_numa_allocator_t allocator(node.node_id);
@@ -223,7 +223,7 @@ void fu_free(size_t numa_node_index, void *pointer, size_t bytes) {
223223

224224
#pragma region - Lifetime
225225

226-
fu_pool_t *fu_pool_new(char const *name) {
226+
fu_pool_t *fu_pool_new(FU_MAYBE_UNUSED_ char const *name) {
227227
if (!globals_initialize()) return nullptr;
228228

229229
opaque_pool_t *opaque = static_cast<opaque_pool_t *>(std::malloc(sizeof(opaque_pool_t)));

include/fork_union.hpp

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,7 @@
146146
#if defined(__GNUC__) || defined(__clang__)
147147
#define FU_MAYBE_UNUSED_ __attribute__((unused))
148148
#elif defined(_MSC_VER)
149-
#define FU_MAYBE_UNUSED_ __pragma(warning(suppress : 4100))
149+
#define FU_MAYBE_UNUSED_ __pragma(warning(suppress : 4100 4189))
150150
#else
151151
#define FU_MAYBE_UNUSED_
152152
#endif
@@ -3679,10 +3679,15 @@ struct logging_colors_t {
36793679
#if defined(__unix__) || defined(__APPLE__)
36803680
if (!::isatty(STDOUT_FILENO)) return;
36813681
#endif
3682+
#if defined(_WIN32)
3683+
// On Windows, assume color support is available
3684+
use_colors_ = true;
3685+
#else
36823686
char const *term = std::getenv("TERM");
36833687
if (!term) return;
36843688
use_colors_ = std::strstr(term, "color") != nullptr || std::strstr(term, "xterm") != nullptr ||
36853689
std::strstr(term, "screen") != nullptr || std::strcmp(term, "linux") == 0;
3690+
#endif
36863691
}
36873692

36883693
/* ANSI style codes */

scripts/nbody.cpp

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,8 @@ inline void apply_force(body_t &bi, vector3_t const &f) noexcept {
114114

115115
#pragma region - Backends
116116

117-
void iteration_openmp_static(body_t *_FU_RESTRICT bodies, vector3_t *_FU_RESTRICT forces, std::size_t n) noexcept {
117+
void iteration_openmp_static(FU_MAYBE_UNUSED_ body_t *_FU_RESTRICT bodies,
118+
FU_MAYBE_UNUSED_ vector3_t *_FU_RESTRICT forces, FU_MAYBE_UNUSED_ std::size_t n) noexcept {
118119
#if defined(_OPENMP)
119120
#pragma omp parallel for schedule(static)
120121
for (std::size_t i = 0; i < n; ++i) {
@@ -127,7 +128,9 @@ void iteration_openmp_static(body_t *_FU_RESTRICT bodies, vector3_t *_FU_RESTRIC
127128
#endif
128129
}
129130

130-
void iteration_openmp_dynamic(body_t *_FU_RESTRICT bodies, vector3_t *_FU_RESTRICT forces, std::size_t n) noexcept {
131+
void iteration_openmp_dynamic(FU_MAYBE_UNUSED_ body_t *_FU_RESTRICT bodies,
132+
FU_MAYBE_UNUSED_ vector3_t *_FU_RESTRICT forces,
133+
FU_MAYBE_UNUSED_ std::size_t n) noexcept {
131134
#if defined(_OPENMP)
132135
#pragma omp parallel for schedule(dynamic, 1)
133136
for (std::size_t i = 0; i < n; ++i) {
@@ -258,11 +261,23 @@ void iteration_fork_union_numa_dynamic(linux_distributed_pool_t &pool, body_t *_
258261
int main(void) {
259262
std::printf("Welcome to the Fork Union N-Body simulation!\n");
260263

264+
// Helper function to safely get environment variables
265+
auto safe_getenv = [](char const *name) -> char const * {
266+
#if defined(_MSC_VER)
267+
static thread_local char buffer[256];
268+
size_t required_size;
269+
errno_t err = getenv_s(&required_size, buffer, sizeof(buffer), name);
270+
return (err == 0 && required_size > 0) ? buffer : nullptr;
271+
#else
272+
return std::getenv(name); // ! Windows doesn't like this
273+
#endif
274+
};
275+
261276
// Read env vars
262-
auto const n_str = std::getenv("NBODY_COUNT");
263-
auto const iterations_str = std::getenv("NBODY_ITERATIONS");
264-
auto const backend_str = std::getenv("NBODY_BACKEND");
265-
auto const threads_str = std::getenv("NBODY_THREADS");
277+
auto const n_str = safe_getenv("NBODY_COUNT");
278+
auto const iterations_str = safe_getenv("NBODY_ITERATIONS");
279+
auto const backend_str = safe_getenv("NBODY_BACKEND");
280+
auto const threads_str = safe_getenv("NBODY_THREADS");
266281

267282
// Parse env vars and validate
268283
std::size_t n = std::strtoull(n_str ? n_str : "0", nullptr, 10);

0 commit comments

Comments
 (0)