mirror of https://github.com/golang/go.git
cmd/cgo: silence unaligned-access
Clang 14+ introduced a warning when using mixed packed and unpacked structs. This can cause problems when taking an address of the unpacked struct, which may end up having a different alignment than expected. This is not a problem in cgo, which does not take pointers from the packed struct. Fixes #62480 Change-Id: If5879eea5e1b77bc6dc7430f68f8c916bff9b090 Reviewed-on: https://go-review.googlesource.com/c/go/+/526915 Reviewed-by: Ian Lance Taylor <iant@google.com> Auto-Submit: Ian Lance Taylor <iant@google.com> Reviewed-by: Than McIntosh <thanm@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
This commit is contained in:
parent
2e7e1d2e8d
commit
2fe2f08542
|
|
@ -910,6 +910,7 @@ func (p *Package) writeExports(fgo2, fm, fgcc, fgcch io.Writer) {
|
|||
fmt.Fprintf(fgcc, "#pragma GCC diagnostic ignored \"-Wunknown-pragmas\"\n")
|
||||
fmt.Fprintf(fgcc, "#pragma GCC diagnostic ignored \"-Wpragmas\"\n")
|
||||
fmt.Fprintf(fgcc, "#pragma GCC diagnostic ignored \"-Waddress-of-packed-member\"\n")
|
||||
fmt.Fprintf(fgcc, "#pragma GCC diagnostic ignored \"-Wunaligned-access\"\n")
|
||||
|
||||
fmt.Fprintf(fgcc, "extern void crosscall2(void (*fn)(void *), void *, int, size_t);\n")
|
||||
fmt.Fprintf(fgcc, "extern size_t _cgo_wait_runtime_init_done(void);\n")
|
||||
|
|
@ -1522,6 +1523,7 @@ extern char* _cgo_topofstack(void);
|
|||
#pragma GCC diagnostic ignored "-Wunknown-pragmas"
|
||||
#pragma GCC diagnostic ignored "-Wpragmas"
|
||||
#pragma GCC diagnostic ignored "-Waddress-of-packed-member"
|
||||
#pragma GCC diagnostic ignored "-Wunaligned-access"
|
||||
|
||||
#include <errno.h>
|
||||
#include <string.h>
|
||||
|
|
|
|||
Loading…
Reference in New Issue