OSDN Git Service

[libc++] Unbreak the debug mode
authorLouis Dionne <ldionne.2@gmail.com>
Thu, 14 Jan 2021 21:27:53 +0000 (16:27 -0500)
committerLouis Dionne <ldionne.2@gmail.com>
Tue, 19 Jan 2021 19:15:31 +0000 (14:15 -0500)
commit68dba7eae1df333738d1c77cbbefd480995c1972
treef667a5495e3b6fb97275579aee9f77c8e5a4bff3
parente678656625a3e2b6a5f2849f4a6f7612ceeaed07
[libc++] Unbreak the debug mode

When the Debug mode is enabled, we disable extern declarations because we
don't want to use the functions compiled in the library, which might not
have had the debug mode enabled when built. However, some extern declarations
need to be kept, because code correctness depends on it.

31e820378b8a removed those declarations, which had the unintended
consequence of breaking the debug build. This commit fixes that by
re-introducing a separate macro for the required extern declarations,
and adds a comment so that we don't fall into that trap in the future.

Differential Revision: https://reviews.llvm.org/D94718
libcxx/include/__config
libcxx/include/__locale
libcxx/include/locale
libcxx/test/libcxx/debug/extern-templates.sh.cpp [new file with mode: 0644]