[clang-tools-extra] [clang-tidy] Add bugprone-setvbuf-stack-buffer check (PR #187637)

via cfe-commits cfe-commits at lists.llvm.org
Fri Mar 20 05:57:39 PDT 2026


github-actions[bot] wrote:

<!--PREMERGE ADVISOR COMMENT: Windows-->
# :window: Windows x64 Test Results

* 3107 tests passed
* 29 tests skipped
* 1 test failed

## Failed Tests
(click on a test name to see its output)

### Clang Tools
<details>
<summary>Clang Tools.clang-tidy/checkers/bugprone/setvbuf-stack-buffer.c</summary>

```
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 1
C:/Python312/python.exe C:/_work/llvm-project/llvm-project/clang-tools-extra/test/../test\clang-tidy\check_clang_tidy.py C:\_work\llvm-project\llvm-project\clang-tools-extra\test\clang-tidy\checkers\bugprone\setvbuf-stack-buffer.c bugprone-setvbuf-stack-buffer C:\_work\llvm-project\llvm-project\build\tools\clang\tools\extra\test\clang-tidy\checkers\bugprone\Output\setvbuf-stack-buffer.c.tmp
# executed command: C:/Python312/python.exe 'C:/_work/llvm-project/llvm-project/clang-tools-extra/test/../test\clang-tidy\check_clang_tidy.py' 'C:\_work\llvm-project\llvm-project\clang-tools-extra\test\clang-tidy\checkers\bugprone\setvbuf-stack-buffer.c' bugprone-setvbuf-stack-buffer 'C:\_work\llvm-project\llvm-project\build\tools\clang\tools\extra\test\clang-tidy\checkers\bugprone\Output\setvbuf-stack-buffer.c.tmp'
# .---command stdout------------
# | Running ['clang-tidy', '--experimental-custom-checks', 'C:\\_work\\llvm-project\\llvm-project\\build\\tools\\clang\\tools\\extra\\test\\clang-tidy\\checkers\\bugprone\\Output\\setvbuf-stack-buffer.c.tmp.c', '-fix', '--checks=-*,bugprone-setvbuf-stack-buffer', '--config={}', '--', '-std=c99', '-nostdinc++', '-isystem', 'C:\\_work\\llvm-project\\llvm-project\\clang-tools-extra\\test\\clang-tidy\\checkers\\Inputs\\Headers\\std']...
# | clang-tidy --experimental-custom-checks C:\_work\llvm-project\llvm-project\build\tools\clang\tools\extra\test\clang-tidy\checkers\bugprone\Output\setvbuf-stack-buffer.c.tmp.c -fix --checks=-*,bugprone-setvbuf-stack-buffer --config={} -- -std=c99 -nostdinc++ -isystem C:\_work\llvm-project\llvm-project\clang-tools-extra\test\clang-tidy\checkers\Inputs\Headers\std failed:
# | 2 warnings and 1 error generated.
# | 
# | Error while processing C:\_work\llvm-project\llvm-project\build\tools\clang\tools\extra\test\clang-tidy\checkers\bugprone\Output\setvbuf-stack-buffer.c.tmp.c.
# | 
# | C:\_work\llvm-project\llvm-project\build\tools\clang\tools\extra\test\clang-tidy\checkers\bugprone\Output\setvbuf-stack-buffer.c.tmp.c:3:23: error: typedef redefinition with different types ('unsigned long' vs '__size_t' (aka 'unsigned long long')) [clang-diagnostic-error]
# |     3 | typedef unsigned long size_t;
# |       |                       ^
# | C:\_work\llvm-project\llvm-project\build\tools\clang\tools\extra\test\clang-tidy\checkers\bugprone\Output\setvbuf-stack-buffer.c.tmp.c:19:3: warning: passing stack-allocated buffer to 'setvbuf'; buffer must outlive the stream; use a static, global, or dynamically allocated buffer instead [bugprone-setvbuf-stack-buffer]
# |    19 |   setvbuf(stdin, buf, _IOFBF, BUFSIZ);
# |       |   ^              ~~~
# | C:\_work\llvm-project\llvm-project\build\tools\clang\tools\extra\test\clang-tidy\checkers\bugprone\Output\setvbuf-stack-buffer.c.tmp.c:55:3: warning: passing stack-allocated buffer to 'setvbuf'; buffer must outlive the stream; use a static, global, or dynamically allocated buffer instead [bugprone-setvbuf-stack-buffer]
# |    55 |   setvbuf(stdin, &buf[0], _IOFBF, BUFSIZ);
# |       |   ^              ~~~~~~~
# | Found compiler errors, but -fix-errors was not specified.
# | 
# | Fixes have NOT been applied.
# | 
# | 
# | 
# | Found compiler error(s).
# | 
# | 
# `-----------------------------
# .---command stderr------------
# | Traceback (most recent call last):
# |   File "C:\_work\llvm-project\llvm-project\clang-tools-extra\test\clang-tidy\check_clang_tidy.py", line 554, in <module>
# |     main()
# |   File "C:\_work\llvm-project\llvm-project\clang-tools-extra\test\clang-tidy\check_clang_tidy.py", line 550, in main
# |     CheckRunner(args, extra_args).run()
# |   File "C:\_work\llvm-project\llvm-project\clang-tools-extra\test\clang-tidy\check_clang_tidy.py", line 426, in run
# |     clang_tidy_output = self.run_clang_tidy()
# |                         ^^^^^^^^^^^^^^^^^^^^^
# |   File "C:\_work\llvm-project\llvm-project\clang-tools-extra\test\clang-tidy\check_clang_tidy.py", line 289, in run_clang_tidy
# |     clang_tidy_output = try_run(args)
# |                         ^^^^^^^^^^^^^
# |   File "C:\_work\llvm-project\llvm-project\clang-tools-extra\test\clang-tidy\check_clang_tidy.py", line 64, in try_run
# |     process_output = subprocess.check_output(args, stderr=subprocess.STDOUT).decode(
# |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
# |   File "c:\python312\Lib\subprocess.py", line 466, in check_output
# |     return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
# |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
# |   File "c:\python312\Lib\subprocess.py", line 571, in run
# |     raise CalledProcessError(retcode, process.args,
# | subprocess.CalledProcessError: Command '['clang-tidy', '--experimental-custom-checks', 'C:\\_work\\llvm-project\\llvm-project\\build\\tools\\clang\\tools\\extra\\test\\clang-tidy\\checkers\\bugprone\\Output\\setvbuf-stack-buffer.c.tmp.c', '-fix', '--checks=-*,bugprone-setvbuf-stack-buffer', '--config={}', '--', '-std=c99', '-nostdinc++', '-isystem', 'C:\\_work\\llvm-project\\llvm-project\\clang-tools-extra\\test\\clang-tidy\\checkers\\Inputs\\Headers\\std']' returned non-zero exit status 1.
# `-----------------------------
# error: command failed with exit status: 1

--

```
</details>

If these failures are unrelated to your changes (for example tests are broken or flaky at HEAD), please open an issue at https://github.com/llvm/llvm-project/issues and add the `infrastructure` label.

https://github.com/llvm/llvm-project/pull/187637


More information about the cfe-commits mailing list