mirror of
https://github.com/golang/go
synced 2024-11-23 00:50:05 -07:00
misc/cgo/testsanitizers: fix code to detect gcc version correctly
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 <gobot@golang.org> Reviewed-by: Damien Neil <dneil@google.com> Run-TryBot: Archana Ravindar <aravind5@in.ibm.com> Reviewed-by: Than McIntosh <thanm@google.com>
This commit is contained in:
parent
133c0e9011
commit
dfbecc06e7
@ -202,16 +202,16 @@ func compilerVersion() (version, error) {
|
|||||||
var match [][]byte
|
var match [][]byte
|
||||||
if bytes.HasPrefix(out, []byte("gcc")) {
|
if bytes.HasPrefix(out, []byte("gcc")) {
|
||||||
compiler.name = "gcc"
|
compiler.name = "gcc"
|
||||||
cmd, err := cc("-v")
|
cmd, err := cc("-dumpfullversion", "-dumpversion")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
out, err := cmd.CombinedOutput()
|
out, err := cmd.Output()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
// gcc, but does not support gcc's "-v" flag?!
|
// gcc, but does not support gcc's "-v" flag?!
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
gccRE := regexp.MustCompile(`gcc version (\d+)\.(\d+)`)
|
gccRE := regexp.MustCompile(`(\d+)\.(\d+)`)
|
||||||
match = gccRE.FindSubmatch(out)
|
match = gccRE.FindSubmatch(out)
|
||||||
} else {
|
} else {
|
||||||
clangRE := regexp.MustCompile(`clang version (\d+)\.(\d+)`)
|
clangRE := regexp.MustCompile(`clang version (\d+)\.(\d+)`)
|
||||||
|
Loading…
Reference in New Issue
Block a user