Skip to content

Commit

Permalink
misc/cgo/testsanitizers: fix code to detect gcc version correctly
Browse files Browse the repository at this point in the history
The current implementation of compilerVersion incorrectly gives an
error message that the compiler version is too old even though the
system has a recent compiler. This happens for specifically for the
gcc compiler and causes ASAN tests to be skipped.
Replacing -v with gcc dump version options seems to fix it. Running
./testsanitizers.test -test.v now shows the ASAN tests being run.
--- PASS: TestASAN (16.81s)
    --- PASS: TestASAN/asan_useAfterReturn (0.60s)
    --- PASS: TestASAN/asan_global5 (0.61s)
    --- PASS: TestASAN/asan_unsafe_fail1 (0.73s)
    --- PASS: TestASAN/asan_unsafe_fail3 (0.73s)
    --- PASS: TestASAN/asan_unsafe_fail2 (0.74s)
    --- PASS: TestASAN/asan_global4_fail (0.74s)
    --- PASS: TestASAN/asan5_fail (0.74s)
    --- PASS: TestASAN/asan3_fail (0.88s)
    --- PASS: TestASAN/asan4_fail (0.89s)
    --- PASS: TestASAN/asan2_fail (0.99s)
    --- PASS: TestASAN/asan_global3_fail (1.00s)
    --- PASS: TestASAN/asan_global1_fail (1.01s)
    --- PASS: TestASAN/asan1_fail (1.01s)
    --- PASS: TestASAN/asan_global2_fail (1.02s)
PASS

Fixes #54370

Change-Id: Iac13a1cf37de54432a6e49555f61e9ec1d781ab8
Reviewed-on: https://go-review.googlesource.com/c/go/+/422574
TryBot-Result: Gopher Robot <[email protected]>
Reviewed-by: Damien Neil <[email protected]>
Run-TryBot: Archana Ravindar <[email protected]>
Reviewed-by: Than McIntosh <[email protected]>
  • Loading branch information
Archana R authored and thanm committed Aug 11, 2022
1 parent 133c0e9 commit dfbecc0
Showing 1 changed file with 3 additions and 3 deletions.
6 changes: 3 additions & 3 deletions misc/cgo/testsanitizers/cc_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -202,16 +202,16 @@ func compilerVersion() (version, error) {
var match [][]byte
if bytes.HasPrefix(out, []byte("gcc")) {
compiler.name = "gcc"
cmd, err := cc("-v")
cmd, err := cc("-dumpfullversion", "-dumpversion")
if err != nil {
return err
}
out, err := cmd.CombinedOutput()
out, err := cmd.Output()
if err != nil {
// gcc, but does not support gcc's "-v" flag?!
return err
}
gccRE := regexp.MustCompile(`gcc version (\d+)\.(\d+)`)
gccRE := regexp.MustCompile(`(\d+)\.(\d+)`)
match = gccRE.FindSubmatch(out)
} else {
clangRE := regexp.MustCompile(`clang version (\d+)\.(\d+)`)
Expand Down

0 comments on commit dfbecc0

Please sign in to comment.