# Check that if the PATH directory containing the C compiler has a space,
# we can still use that compiler with cgo.
# Verifies #43808.
[!cgo] skip

# Set CC explicitly to something that requires a PATH lookup.
# Normally, the default is gcc or clang, but if CC was set during make.bash,
# that becomes the default.
[exec:clang] env CC=clang
[exec:gcc] env CC=gcc
[!exec:clang] [!exec:gcc] skip 'Unknown C compiler'

[!windows] chmod 0755 $WORK/'program files'/clang
[!windows] chmod 0755 $WORK/'program files'/gcc
[!windows] exists -exec $WORK/'program files'/clang
[!windows] exists -exec $WORK/'program files'/gcc
[!windows] env PATH=$WORK/'program files':$PATH
[windows] exists -exec $WORK/'program files'/gcc.bat
[windows] exists -exec $WORK/'program files'/clang.bat
[windows] env PATH=$WORK\'program files';%PATH%

! exists $WORK/log.txt
? go build -x
exists $WORK/log.txt
rm $WORK/log.txt

# TODO(#41400, #43078): when CC is set explicitly, it should be allowed to
# contain spaces separating arguments, and it should be possible to quote
# arguments with spaces (including the path), as in CGO_CFLAGS and other
# variables. For now, this doesn't work.
[!windows] env CC=$WORK/'program files'/gcc
[windows] env CC=$WORK\'program files'\gcc.bat
! go build -x
! exists $WORK/log.txt

-- go.mod --
module m

-- m.go --
package m

// #define X 1
import "C"

-- $WORK/program files/gcc --
#!/bin/sh

echo ok >$WORK/log.txt
-- $WORK/program files/clang --
#!/bin/sh

echo ok >$WORK/log.txt
-- $WORK/program files/gcc.bat --
echo ok >%WORK%\log.txt
-- $WORK/program files/clang.bat --
echo ok >%WORK%\log.txt
