Skip to content

Fix C99 extensions compilation error with Clang - #358

Merged
xlamorlette-datadog merged 1 commit into
mainfrom
xlamorlette/c99-compound-literals-compilation-error
Aug 20, 2026
Merged

Fix C99 extensions compilation error with Clang#358
xlamorlette-datadog merged 1 commit into
mainfrom
xlamorlette/c99-compound-literals-compilation-error

Conversation

@xlamorlette-datadog

@xlamorlette-datadog xlamorlette-datadog commented Aug 20, 2026

Copy link
Copy Markdown
Collaborator

Description

Extend the existing diagnostic-suppression block in otel_process_ctx.cpp to also ignore -Wc99-extensions, and drop the __cplusplus < 202002L restriction so it applies regardless of dialect.

Motivation

When trying to integrate dd-trace-cpp v2.2.0 in nginx-datadog, we hit the following compilation error:

otel_process_ctx.cpp:153:21: error: compound literals are a C99-specific feature [-Werror,-Wc99-extensions]
  153 |   if (!data) return (otel_process_ctx_result) {.success = false, .error_message = "otel_process_ctx_data is NULL (" __FILE__ ":" ADD_QUOTES(__LINE__) ")"};

Additional Notes

Jira ticket: IDMPL-814 [C++ Tracer] C99 compound literals compilation error

@pr-commenter

pr-commenter Bot commented Aug 20, 2026

Copy link
Copy Markdown

Benchmarks

Benchmark execution time: 2026-08-20 15:12:53

Comparing candidate commit 761d434 in PR branch xlamorlette/c99-compound-literals-compilation-error with baseline commit 765983d in branch main.

Found 1 performance improvements and 0 performance regressions! Performance is the same for 7 metrics, 0 unstable metrics.

Explanation

This is an A/B test comparing a candidate commit's performance against that of a baseline commit. Performance changes are noted in the tables below as:

  • 🟩 = significantly better candidate vs. baseline
  • 🟥 = significantly worse candidate vs. baseline

We compute a confidence interval (CI) over the relative difference of means between metrics from the candidate and baseline commits, considering the baseline as the reference.

If the CI is entirely outside the configured SIGNIFICANT_IMPACT_THRESHOLD (or the deprecated UNCONFIDENCE_THRESHOLD), the change is considered significant.

Feel free to reach out to #apm-benchmarking-platform on Slack if you have any questions.

More details about the CI and significant changes

You can imagine this CI as a range of values that is likely to contain the true difference of means between the candidate and baseline commits.

CIs of the difference of means are often centered around 0%, because often changes are not that big:

---------------------------------(------|---^--------)-------------------------------->
                              -0.6%    0%  0.3%     +1.2%
                                 |          |        |
         lower bound of the CI --'          |        |
sample mean (center of the CI) -------------'        |
         upper bound of the CI ----------------------'

As described above, a change is considered significant if the CI is entirely outside the configured SIGNIFICANT_IMPACT_THRESHOLD (or the deprecated UNCONFIDENCE_THRESHOLD).

For instance, for an execution time metric, this confidence interval indicates a significantly worse performance:

----------------------------------------|---------|---(---------^---------)---------->
                                       0%        1%  1.3%      2.2%      3.1%
                                                  |   |         |         |
       significant impact threshold --------------'   |         |         |
                      lower bound of CI --------------'         |         |
       sample mean (center of the CI) --------------------------'         |
                      upper bound of CI ----------------------------------'

scenario:BM_TraceID_ParseHex/128bit

  • 🟩 execution_time [-25.569ns; -25.427ns] or [-12.903%; -12.831%]

@datadog-prod-us1-5

Copy link
Copy Markdown

🎯 Code Coverage (details)
Patch Coverage: 100.00%
Overall Coverage: 84.48% (+0.00%)

This comment will be updated automatically if new data arrives.
🔗 Commit SHA: 761d434 | Docs | View more details | Give us feedback!

@xlamorlette-datadog
xlamorlette-datadog marked this pull request as ready for review August 20, 2026 15:17
@xlamorlette-datadog
xlamorlette-datadog requested review from a team as code owners August 20, 2026 15:17
@xlamorlette-datadog
xlamorlette-datadog requested review from zacharycmontoya and removed request for a team August 20, 2026 15:17
@xlamorlette-datadog
xlamorlette-datadog merged commit b618ed8 into main Aug 20, 2026
38 checks passed
@xlamorlette-datadog
xlamorlette-datadog deleted the xlamorlette/c99-compound-literals-compilation-error branch August 20, 2026 15:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants