Skip to content

Commit c05fceb

Browse files
egonelbrethanm
authored andcommitted
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. Updated version of https://go.dev/cl/526915, which includes "-Wunknown-warning-option" for compilers that do not have the specific flag. Fixes #62480 Change-Id: I788c6604d0ed5267949f4367f148fa26d2116f51 Reviewed-on: https://go-review.googlesource.com/c/go/+/528935 LUCI-TryBot-Result: Go LUCI <[email protected]> Reviewed-by: Carlos Amedee <[email protected]> Run-TryBot: Ian Lance Taylor <[email protected]> TryBot-Result: Gopher Robot <[email protected]> Reviewed-by: Than McIntosh <[email protected]>
1 parent 38b2c06 commit c05fceb

File tree

1 file changed

+4
-0
lines changed

1 file changed

+4
-0
lines changed

src/cmd/cgo/out.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -910,6 +910,8 @@ func (p *Package) writeExports(fgo2, fm, fgcc, fgcch io.Writer) {
910910
fmt.Fprintf(fgcc, "#pragma GCC diagnostic ignored \"-Wunknown-pragmas\"\n")
911911
fmt.Fprintf(fgcc, "#pragma GCC diagnostic ignored \"-Wpragmas\"\n")
912912
fmt.Fprintf(fgcc, "#pragma GCC diagnostic ignored \"-Waddress-of-packed-member\"\n")
913+
fmt.Fprintf(fgcc, "#pragma GCC diagnostic ignored \"-Wunknown-warning-option\"\n")
914+
fmt.Fprintf(fgcc, "#pragma GCC diagnostic ignored \"-Wunaligned-access\"\n")
913915

914916
fmt.Fprintf(fgcc, "extern void crosscall2(void (*fn)(void *), void *, int, size_t);\n")
915917
fmt.Fprintf(fgcc, "extern size_t _cgo_wait_runtime_init_done(void);\n")
@@ -1522,6 +1524,8 @@ extern char* _cgo_topofstack(void);
15221524
#pragma GCC diagnostic ignored "-Wunknown-pragmas"
15231525
#pragma GCC diagnostic ignored "-Wpragmas"
15241526
#pragma GCC diagnostic ignored "-Waddress-of-packed-member"
1527+
#pragma GCC diagnostic ignored "-Wunknown-warning-option"
1528+
#pragma GCC diagnostic ignored "-Wunaligned-access"
15251529
15261530
#include <errno.h>
15271531
#include <string.h>

0 commit comments

Comments
 (0)