Fix undefined behavior in RSL_LITE (#1765)
commitf02ae22405940ae28cf7dbfe7a9a25f07d27f425
authorsfalmo <52037539+sfalmo@users.noreply.github.com>
Fri, 16 Dec 2022 01:43:39 +0000 (16 02:43 +0100)
committerGitHub <noreply@github.com>
Fri, 16 Dec 2022 01:43:39 +0000 (15 18:43 -0700)
tree2d217f971fcfabb67afd71fd7cfc57102e7eed86
parent4b94b9c524001ab597ccb13a31a8817da41219fe
Fix undefined behavior in RSL_LITE (#1765)

TYPE: bug fix

KEYWORDS: RSL_LITE

SOURCE: Florian Sammüller (Universität Bayreuth, Germany)

DESCRIPTION OF CHANGES:
Problem:
RSL_LITE has undefined behavior due to implicitly declared functions.
This may lead to a crash of `wrf.exe` in the initialization of nested domains if WRF is built with link-time optimization and with recent compilers (e.g. GCC 12).

Solution:
Declare rsl_free() and destroy_list() before first use.

ISSUE:
Fixes #1764

LIST OF MODIFIED FILES:
M       external/RSL_LITE/rsl_bcast.c
M       external/RSL_LITE/rsl_lite.h

TESTS CONDUCTED:
It passed regression tests.

RELEASE NOTE: Fixed an undefined behavior of RSL_LITE due to implicitly declared functions, which might lead to a model abort when using GCC 12.
external/RSL_LITE/rsl_bcast.c
external/RSL_LITE/rsl_lite.h