Author: ZijunZhaoCCK Date: 2024-11-14T10:39:08-08:00 New Revision: 7d20ea9d32954e8e5becab8495fa509a3f67b710
URL: https://github.com/llvm/llvm-project/commit/7d20ea9d32954e8e5becab8495fa509a3f67b710 DIFF: https://github.com/llvm/llvm-project/commit/7d20ea9d32954e8e5becab8495fa509a3f67b710.diff LOG: [clang] Extend clang's <limits.h> to define *LONG_LONG*_ macros for bionic (#115406) *LONG_LONG*_ macros are not GNU-only extensions any more. Bionic also defines them. Added: Modified: clang/docs/ReleaseNotes.rst clang/lib/Headers/limits.h clang/test/Headers/limits.cpp Removed: ################################################################################ diff --git a/clang/docs/ReleaseNotes.rst b/clang/docs/ReleaseNotes.rst index eecfd585c1c03d..681728d36952c1 100644 --- a/clang/docs/ReleaseNotes.rst +++ b/clang/docs/ReleaseNotes.rst @@ -271,6 +271,8 @@ Resolutions to C++ Defect Reports C Language Changes ------------------ +- Extend clang's ``<limits.h>`` to define ``LONG_LONG_*`` macros for Android's bionic. + C2y Feature Support ^^^^^^^^^^^^^^^^^^^ diff --git a/clang/lib/Headers/limits.h b/clang/lib/Headers/limits.h index 56dffe568486cc..d08227fe4d3d48 100644 --- a/clang/lib/Headers/limits.h +++ b/clang/lib/Headers/limits.h @@ -111,11 +111,14 @@ #define ULLONG_MAX (__LONG_LONG_MAX__*2ULL+1ULL) #endif -/* LONG_LONG_MIN/LONG_LONG_MAX/ULONG_LONG_MAX are a GNU extension. It's too bad - that we don't have something like #pragma poison that could be used to - deprecate a macro - the code should just use LLONG_MAX and friends. +/* LONG_LONG_MIN/LONG_LONG_MAX/ULONG_LONG_MAX are a GNU extension. Android's + bionic also defines them. It's too bad that we don't have something like + #pragma poison that could be used to deprecate a macro - the code should just + use LLONG_MAX and friends. */ -#if defined(__GNU_LIBRARY__) ? defined(__USE_GNU) : !defined(__STRICT_ANSI__) +#if (defined(__GNU_LIBRARY__) ? defined(__USE_GNU) \ + : !defined(__STRICT_ANSI__)) || \ + defined(__BIONIC__) #undef LONG_LONG_MIN #undef LONG_LONG_MAX diff --git a/clang/test/Headers/limits.cpp b/clang/test/Headers/limits.cpp index da7a64901831d5..132e5bc24a0c92 100644 --- a/clang/test/Headers/limits.cpp +++ b/clang/test/Headers/limits.cpp @@ -4,6 +4,9 @@ // RUN: %clang_cc1 -std=c17 -ffreestanding -fsyntax-only -verify -x c %s // RUN: %clang_cc1 -std=c2x -ffreestanding -fsyntax-only -verify -x c %s +// Specifically test arm64 linux platforms. +// RUN: %clang_cc1 -triple arm64-linux -ffreestanding -fsyntax-only -verify -x c %s + // Specifically test 16-bit int platforms. // RUN: %clang_cc1 -triple=avr -ffreestanding -fsyntax-only -verify -x c %s // RUN: %clang_cc1 -triple=avr -std=c++11 -ffreestanding -fsyntax-only -verify %s _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits