[gdb/build] Fix C inclusion of nat/x86-cpuid.h
When running test-case gdb.arch/i386-avx512.exp, I run into:
...
gdb compile failed, In file included from gdb.arch/i386-avx512.c:20:0:
src/gdb/nat/x86-cpuid.h: In function 'x86_cpuid_count':
src/gdb/nat/x86-cpuid.h:63:16: error: \
'nullptr' undeclared (first use in this function)
if (__eax == nullptr)
^~~~~~~
src/gdb/nat/x86-cpuid.h:63:16: note: each \
undeclared identifier is reported only once for each function it appears in
=== gdb Summary ===
# of untested testcases 1
...
This is due to commit e85aad4ae7
("nat/x86-cpuid.h: Add x86_cpuid_count
wrapper around __get_cpuid_count"), which introduced the nullptr check.
The header file gdb/nat/x86-cpuid.h is a file that is included in the build
and compiled as a C++ file, but also in the testsuite and compiled as a C
file.
Fix this by replacing nullptr with (void *)0.
Tested on x86_64-linux.
Co-Authored-By: Kevin Buettner <kevinb@redhat.com>
Approved-by: Kevin Buettner <kevinb@redhat.com>
This commit is contained in:
parent
2922821e4f
commit
97319ac805
1 changed files with 12 additions and 0 deletions
|
@ -22,6 +22,12 @@
|
|||
/* Always include the header for the cpu bit defines. */
|
||||
#include "x86-gcc-cpuid.h"
|
||||
|
||||
#ifndef __cplusplus
|
||||
/* This header file is also used in C code for some test-cases, so define
|
||||
nullptr in C terms to avoid a compilation error. */
|
||||
#define nullptr ((void *) 0)
|
||||
#endif
|
||||
|
||||
#if defined(__i386__) || defined(__x86_64__)
|
||||
|
||||
/* Return cpuid data for requested cpuid level, as found in returned
|
||||
|
@ -92,4 +98,10 @@ x86_cpuid_count (unsigned int __level, unsigned int __sublevel,
|
|||
|
||||
#endif /* i386 && x86_64 */
|
||||
|
||||
#ifndef __cplusplus
|
||||
/* Avoid leaking this local definition beyond the scope of this header
|
||||
file. */
|
||||
#undef nullptr
|
||||
#endif
|
||||
|
||||
#endif /* NAT_X86_CPUID_H */
|
||||
|
|
Loading…
Add table
Reference in a new issue