Skip to content

clang-tidy: merge nested if()s - #22793

Closed
vszakats wants to merge 91 commits into
curl:masterfrom
vszakats:llvm23
Closed

vszakats wants to merge 91 commits into
curl:masterfrom
vszakats:llvm23

Conversation

@vszakats

@vszakats vszakats commented Sep 2, 2026 •

Copy link
Copy Markdown
Member

Reported by clang-tidy 23.1.0+ via readability-redundant-nested-if.

Do not enforce at this time, due to a handful of places where it 1)
applies conditionally for non-debug builds (cf-h2-proxy.c), 2)
decreases readability (cookie.c, probably could be fixed by using temp
variables or code refactor), 3) breaks code structure (protocol.c).

Ref: https://clang.llvm.org/extra/clang-tidy/checks/readability/redundant-nested-if.html


https://github.com/curl/curl/pull/22793/files?w=1

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

The merged conditions preserve evaluation order and short-circuit behavior across the reviewed changes.

Pull request overview

Merges redundant nested if statements throughout curl while leaving clang-tidy enforcement disabled for remaining exceptions.

Changes:

  • Combines nested conditions without changing short-circuit behavior.
  • Updates tests and examples consistently.
  • Documents the disabled clang-tidy check.
File summaries
File Description
tests/unit/unit2603.c Simplifies parser assertion.
tests/unit/unit1675.c Simplifies IPv6 zone validation.
tests/unit/unit1627.c Simplifies scheme validation.
tests/server/socksd.c Simplifies tunnel completion handling.
tests/libtest/lib758.c Combines timeout conditions.
tests/libtest/lib556.c Combines output-write conditions.
tests/libtest/lib530.c Combines timeout conditions.
tests/libtest/lib3102.c Simplifies certificate checks.
tests/libtest/lib1560.c Simplifies URL-part validation.
tests/libtest/cli_h2_pausing.c Simplifies pause-state validation.
src/var.c Simplifies variable transformations and parsing.
src/tool_writeout.c Simplifies write-out conditions.
src/tool_urlglob.c Simplifies glob element handling.
src/tool_getparam.c Simplifies option validation.
src/tool_formparse.c Simplifies seek and escape handling.
src/tool_cb_wrt.c Simplifies header writing.
src/tool_cb_dbg.c Combines trace-output conditions.
src/config2setopts.c Simplifies TLS-version adjustment.
lib/vtls/openssl.c Simplifies PKCS#11 setup checks.
lib/urlapi.c Simplifies IDN conversion condition.
lib/url.c Simplifies connection matching and credential checks.
lib/telnet.c Combines timeout checks.
lib/smtp.c Simplifies address, MIME, and disconnect logic.
lib/select.c Simplifies poll descriptor handling.
lib/rtsp.c Simplifies range and transport parsing.
lib/pop3.c Simplifies authentication and disconnect logic.
lib/multi.c Simplifies Winsock event selection.
lib/mime.c Simplifies MIME header decisions.
lib/imap.c Simplifies MIME, flags, listing, and disconnect logic.
lib/http.c Simplifies authentication, headers, and time conditions.
lib/http_aws_sigv4.c Simplifies SigV4 buffer handling.
lib/ftp.c Simplifies missing-file handling.
lib/formdata.c Simplifies form validation and MIME setup.
lib/easy.c Simplifies pause event updates.
lib/curlx/inet_pton.c Simplifies leading IPv6 colon validation.
lib/curl_share.c Simplifies share callbacks.
lib/cshutdn.c Simplifies shutdown event handling.
lib/connect.c Simplifies ALPN matching.
lib/cf-socket.c Simplifies interface binding.
lib/cf-ip-happy.c Simplifies reply-time selection.
lib/cf-https-connect.c Simplifies Happy Eyeballs timing.
lib/cf-h2-proxy.c Simplifies final-response detection.
docs/examples/websocket.c Simplifies PONG comparison.
docs/examples/multi-double.c Simplifies completion handling.
.clang-tidy.yml Documents the unenforced check.
Review details
  • Files reviewed: 45/45 changed files
  • Comments generated: 0
  • Review effort level: Balanced

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@icing

icing commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

A great way to make backports more annoying?

@vszakats
vszakats marked this pull request as ready for review September 2, 2026 08:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Development

Successfully merging this pull request may close these issues.

4 participants