On 10/21/2024 1:21 PM, Pedro Falcato wrote:
On Mon, Oct 21, 2024 at 9:05 PM Oliver Smith-Denny
<o...@linux.microsoft.com> wrote:
On 10/21/2024 12:42 PM, Pedro Falcato wrote:
On Mon, Oct 21, 2024 at 3:49 PM Rebecca Cran via groups.io
<rebecca=bsdio....@groups.io> wrote:
Thanks, I'll fix it.
Could you confirm whether the change from STATIC to static is something
we want to go ahead with, or do we want to keep STATIC to allow
GoogleTest to work?
You don't need STATIC, doing stuff like -Dstatic= (or just #define
static in C code) Just Works. For GCC at least.
proof of horribleness: https://godbolt.org/z/EvMd6hev8
The issue here is that C uses one keyword for two distinct things:
file private members and local variables that keep state across calls,
i.e. real static variables.
That's an interesting problem, but I'm afraid the current EDK2 coding
style would recommend STATIC for local variables too.
https://tianocore-docs.github.io/edk2-CCodingStandardsSpecification/release-2.20/5_source_files/56_declarations_and_types.html#56-declarations-and-types
says:
5.6.1.2 The use of int, unsigned, char, void, static, long is a
violation of the coding convention.
so:
INT Foo()
{
STATIC INT Variable = 0;
return Variable++;
}
would be the sanctioned way to pull off this kind of stuff. So STATIC
gains us nothing (neither does INT, LONG, CHAR, VOID, or CONST).
Yeah, so what we did in Mu was leverage the fact that static locals are
relatively uncommon and code coverage is extremely low, so that there
was only one current instance of a static local under test. And we
changed that to lowercase static. So now STATIC bought us that we
could undef it when building HOST_APPLICATIONs.
Was I happy with that approach? No. But, we were trying to evaluate
the usefulness of GoogleTest and this was one issue that had to be
fixed in order for us to use it.
Oliver
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#120640): https://edk2.groups.io/g/devel/message/120640
Mute This Topic: https://groups.io/mt/108941574/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-