diff options
Diffstat (limited to 'compiler_wrapper/clang_syntax_flag.go')
-rw-r--r-- | compiler_wrapper/clang_syntax_flag.go | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/compiler_wrapper/clang_syntax_flag.go b/compiler_wrapper/clang_syntax_flag.go index 90d2327a..53240c7f 100644 --- a/compiler_wrapper/clang_syntax_flag.go +++ b/compiler_wrapper/clang_syntax_flag.go @@ -4,10 +4,6 @@ package main -import ( - "bytes" -) - func processClangSyntaxFlag(builder *commandBuilder) (clangSyntax bool) { builder.transformArgs(func(arg builderArg) string { if arg.value == "-clang-syntax" { @@ -26,12 +22,16 @@ func checkClangSyntax(env env, clangCmd *command, gccCmd *command) (exitCode int EnvUpdates: clangCmd.EnvUpdates, } - stdinBuffer := &bytes.Buffer{} + getStdin, err := prebufferStdinIfNeeded(env, clangCmd) + if err != nil { + return 0, wrapErrorwithSourceLocf(err, "prebuffering stdin: %v", err) + } + exitCode, err = wrapSubprocessErrorWithSourceLoc(clangSyntaxCmd, - env.run(clangSyntaxCmd, teeStdinIfNeeded(env, clangCmd, stdinBuffer), env.stdout(), env.stderr())) + env.run(clangSyntaxCmd, getStdin(), env.stdout(), env.stderr())) if err != nil || exitCode != 0 { return exitCode, err } return wrapSubprocessErrorWithSourceLoc(gccCmd, - env.run(gccCmd, bytes.NewReader(stdinBuffer.Bytes()), env.stdout(), env.stderr())) + env.run(gccCmd, getStdin(), env.stdout(), env.stderr())) } |