skcms: support two attributes with GCC

Cherry pick of https://review.skia.org/975316

* Support [[gnu::fallthrough]] with GCC
* support [[clang::musttail]] with GCC

GCC 15 will support [[clang::musttail]], so fix the checks to align
with Skia in src/core/SkRasterPipeline.h to use it if available for non-Clang.

Fix up [[gnu::fallthrough]] while here too, as GCC supports that.

Change-Id: Iaea26698a3d65c42d4f6c6783f14fbc54465e872
Reviewed-on: https://skia-review.googlesource.com/c/skcms/+/1038876
Auto-Submit: Kaylee Lubick <kjlubick@google.com>
Reviewed-by: Daniel Dilan <danieldilan@google.com>
Commit-Queue: Daniel Dilan <danieldilan@google.com>
1 file changed
tree: b57d385c5a24ba5b41c4867cb0820e0e6a451e2e
  1. bazel/
  2. fuzz/
  3. infra/
  4. ninja/
  5. profiles/
  6. src/
  7. toolchain/
  8. .bazelrc
  9. .bazelversion
  10. .gitignore
  11. BAZEL.md
  12. bench.c
  13. BUILD.bazel
  14. build.ninja
  15. codereview.settings
  16. iccdump.c
  17. LICENSE
  18. msvs.ninja
  19. OWNERS
  20. README.chromium
  21. README.md
  22. skcms.cc
  23. skcms.gni
  24. skcms.h
  25. test_only.c
  26. test_only.h
  27. tests.c
  28. whitespace.txt
  29. WORKSPACE.bazel
README.md

To build with ninja, simply run ninja from the root directory. This will produce a library in /out.

There are also Bazel rules, outlined in BAZEL.md