Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Turning off clang unsafe buffer warnings fails when compiling with a gcc based compiler #1148

Open
pirgia opened this issue Feb 29, 2024 · 2 comments

Comments

@pirgia
Copy link

pirgia commented Feb 29, 2024

The code sections (in span and util)

// Turn off clang unsafe buffer warnings as all accessed are guarded by runtime checks
#if defined(__clang__) && __has_warning("-Wunsafe-buffer-usage")
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wunsafe-buffer-usage"
#endif // defined(__clang__) && __has_warning("-Wunsafe-buffer-usage")

and (similarly)

#if defined(__clang__) && __has_warning("-Wunsafe-buffer-usage")
#pragma clang diagnostic pop
#endif

fails when compiling with a GCC-based compiler (the STM compiler for an STM32 microcontroller in this case).
The generated error is:

missing binary operator before token "("

I solved this by separating the checks:

// Turn off clang unsafe buffer warnings as all accessed are guarded by runtime checks
#if defined(__clang__)
#  if __has_warning("-Wunsafe-buffer-usage")
#    pragma clang diagnostic push
#    pragma clang diagnostic ignored "-Wunsafe-buffer-usage"
#  endif // __has_warning("-Wunsafe-buffer-usage")
#endif // defined(__clang__)

There are 4 points that need to be modified:

  • span: lines 67 and 855
  • util: lines 45 and 163

Thanks for your attention

beinhaerter pushed a commit to beinhaerter/GSL that referenced this issue Mar 1, 2024
Closes issue microsoft#1148 by fixing problems introduced in PR microsoft#1140.
@christianbrugger
Copy link

I am having the same issue, it even shows up now in godbolt:

https://godbolt.org/z/cEb1481Yd

The last commit that works for me with gcc is caae4dd.

I also can confirm that the pull request from @beinhaerter fixes the issue for me

@jackluo923
Copy link

Confirmed to be working for me as well.

beinhaerter pushed a commit to beinhaerter/GSL that referenced this issue May 8, 2024
Closes issue microsoft#1148 by fixing problems introduced in PR microsoft#1140.
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

No branches or pull requests

3 participants