]> git.baikalelectronics.ru Git - kernel.git/commit
lib/crc32.c: mark crc32_le_base/__crc32c_le_base aliases as __pure
authorMiguel Ojeda <miguel.ojeda.sandonis@gmail.com>
Thu, 24 Jan 2019 14:59:11 +0000 (15:59 +0100)
committerMiguel Ojeda <miguel.ojeda.sandonis@gmail.com>
Fri, 15 Feb 2019 18:50:07 +0000 (19:50 +0100)
commitf114547a6fcfebe760123117715c6ee80d730b39
tree21394fcfec2e86750f232566f29522f7b756f52d
parentb5cbce66baf0be0c7a7b3377a02035cf3ad62d9c
lib/crc32.c: mark crc32_le_base/__crc32c_le_base aliases as __pure

The upcoming GCC 9 release extends the -Wmissing-attributes warnings
(enabled by -Wall) to C and aliases: it warns when particular function
attributes are missing in the aliases but not in their target.

In particular, it triggers here because crc32_le_base/__crc32c_le_base
aren't __pure while their target crc32_le/__crc32c_le are.

These aliases are used by architectures as a fallback in accelerated
versions of CRC32. See commit adfbc1f3f774 ("lib/crc32: make core crc32()
routines weak so they can be overridden").

Therefore, being fallbacks, it is likely that even if the aliases
were called from C, there wouldn't be any optimizations possible.
Currently, the only user is arm64, which calls this from asm.

Still, marking the aliases as __pure makes sense and is a good idea
for documentation purposes and possible future optimizations,
which also silences the warning.

Acked-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Tested-by: Laura Abbott <labbott@redhat.com>
Signed-off-by: Miguel Ojeda <miguel.ojeda.sandonis@gmail.com>
lib/crc32.c