<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/59227>59227</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Clang :: Analysis/localization-aggressive.m fails with gcc-13
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
SixWeining
</td>
</tr>
</table>
<pre>
When I use latest gcc-13 to build clang/llvm, `Clang :: Analysis/localization-aggressive.m` test fails with release build while it's OK with debug build.
## gcc source code
```
commit 14d11df96336e9d06a4c8108b61815ad94866519 (origin/trunk, origin/master, origin/HEAD, master)
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date: Mon Nov 28 00:16:43 2022 +0000
Daily bump.
```
## llvm source code
```
commit 5279e6a7d677cdf4488883b77aacab911318100c (HEAD)
Author: Michał Górny <mgorny@gentoo.org>
Date: Sat Nov 19 20:54:54 2022 +0100
[cmake] Fix Findzstd.cmake to handle OpenBSD shared libraries
Fix Findzstd CMake to handle shared libraries on OpenBSD correctly.
This userland does not use shared library symlinks without SOVERSION,
so the result of find_library() does not ever end with
zstd_SHARED_LIBRARY_SUFFIX. To work around this, reverse the logic
to compare the result against zstd_STATIC_LIBRARY_SUFFIX and assume
shared library otherwise.
While at it, fix the conditions not to fall back to "result is static
library" path if it actually was recognized as a shared library but
zstd_shared target already existed.
Fixes #59056
Differential Revision: https://reviews.llvm.org/D138361
```
## How to build gcc
```
#!/bin/bash
set -x
set -e
./contrib/download_prerequisites
mkdir objdir
cd objdir
$PWD/../configure --prefix=$PWD/../gcc-install-13 --enable-languages=c,c++
make -j32
make install
```
## How to build clang/llvm
```
#!/bin/bash
set -e
set -x
CONFIG_AND_BUILD=false
if [ "$1" == "r" ];then
CONFIG_AND_BUILD=true
fi
BUILD_TYPE=Release # it's OK if BUILD_TYPE=Debug
BUILD_DIR=_build
INSTALL_DIR="$PWD/llvm_install"
while $CONFIG_AND_BUILD ; do
rm -rf $BUILD_DIR
mkdir $BUILD_DIR
cmake -S llvm -B $BUILD_DIR -G Ninja \
-DLLVM_CCACHE_BUILD=ON \
-DCMAKE_C_COMPILER=/path/to/gcc-install-13/bin/gcc \
-DCMAKE_CXX_COMPILER=/path/to/gcc-install-13/bin/g++ \
-DCMAKE_INSTALL_PREFIX="$INSTALL_DIR" \
-DCMAKE_BUILD_TYPE=$BUILD_TYPE \
-DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD="LoongArch" \
-DLLVM_ENABLE_PROJECTS="clang" \
-DLLVM_ENABLE_ASSERTIONS=ON \
-DLLVM_ENABLE_OCAMLDOC=OFF \
-DLLVM_ENABLE_BINDINGS=OFF \
-DLLVM_BUILD_LLVM_DYLIB=ON \
-DLLVM_LINK_LLVM_DYLIB=ON
break
done
cmake --build $BUILD_DIR -j 32
cmake --build $BUILD_DIR --target check-clang
```
## Test
```
$ ./_build/bin/llvm-lit clang/test/Analysis/localization-aggressive.m -v
llvm-lit: /path/to/llvm-project/llvm/utils/lit/lit/llvm/config.py:457: note: using clang: /path/to/llvm-project/_build/bin/clang
-- Testing: 1 tests, 1 workers --
FAIL: Clang :: Analysis/localization-aggressive.m (1 of 1)
******************** TEST 'Clang :: Analysis/localization-aggressive.m' FAILED ********************
Script:
--
: 'RUN: at line 1'; /path/to/llvm-project/_build/bin/clang -cc1 -internal-isystem /path/to/llvm-project/_build/lib/clang/16/include -nostdsysteminc -fblocks -x objective-c-header -emit-pch -o /path/to/llvm-project/_build/tools/clang/test/Analysis/Output/localization-aggressive.m.tmp.pch /path/to/llvm-project/clang/test/Analysis/Inputs/localization-pch.h
: 'RUN: at line 3'; /path/to/llvm-project/_build/bin/clang -cc1 -internal-isystem /path/to/llvm-project/_build/lib/clang/16/include -nostdsysteminc -analyze -analyzer-constraints=range -setup-static-analyzer -fblocks -analyzer-config optin.osx.cocoa.localizability.NonLocalizedStringChecker:AggressiveReport=true -analyzer-checker=optin.osx.cocoa.localizability.NonLocalizedStringChecker -analyzer-checker=optin.osx.cocoa.localizability.EmptyLocalizationContextChecker -include-pch /path/to/llvm-project/_build/tools/clang/test/Analysis/Output/localization-aggressive.m.tmp.pch -verify /path/to/llvm-project/clang/test/Analysis/localization-aggressive.m
--
Exit Code: 1
Command Output (stderr):
--
error: 'warning' diagnostics expected but not seen:
File /path/to/llvm-project/clang/test/Analysis/localization-aggressive.m Line 245: Localized string macro should include a non-empty comment for translators
File /path/to/llvm-project/clang/test/Analysis/localization-aggressive.m Line 246: Localized string macro should include a non-empty comment for translators
File /path/to/llvm-project/clang/test/Analysis/localization-aggressive.m Line 247: Localized string macro should include a non-empty comment for translators
File /path/to/llvm-project/clang/test/Analysis/localization-aggressive.m Line 251: Localized string macro should include a non-empty comment for translators
File /path/to/llvm-project/clang/test/Analysis/localization-aggressive.m Line 252: Localized string macro should include a non-empty comment for translators
File /path/to/llvm-project/clang/test/Analysis/localization-aggressive.m Line 253: Localized string macro should include a non-empty comment for translators
File /path/to/llvm-project/clang/test/Analysis/localization-aggressive.m Line 257: Localized string macro should include a non-empty comment for translators
File /path/to/llvm-project/clang/test/Analysis/localization-aggressive.m Line 258: Localized string macro should include a non-empty comment for translators
File /path/to/llvm-project/clang/test/Analysis/localization-aggressive.m Line 259: Localized string macro should include a non-empty comment for translators
File /path/to/llvm-project/clang/test/Analysis/localization-aggressive.m Line 263: Localized string macro should include a non-empty comment for translators
File /path/to/llvm-project/clang/test/Analysis/localization-aggressive.m Line 264: Localized string macro should include a non-empty comment for translators
File /path/to/llvm-project/clang/test/Analysis/localization-aggressive.m Line 265: Localized string macro should include a non-empty comment for translators
File /path/to/llvm-project/clang/test/Analysis/localization-aggressive.m Line 269: Localized string macro should include a non-empty comment for translators
13 errors generated.
--
********************
********************
Failed Tests (1):
Clang :: Analysis/localization-aggressive.m
Testing Time: 0.21s
Failed: 1
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzVGV2Tmsj21zAvXVACivLgg4JO3DiaUrNJnqwGWuwM0G43zIz59fccQEVjJsns5lZpMQ50H873ZxuIaN__tGUZmZBCMZLQnKmcxGGomzbJBQkKnkQkTGgWa9Y4SZ5SzfKI5rQ8XCKaPYCLDDKa7BVXCCJCmvBvNOci02kcS6YUf2JGCu-QEvmG8kSRZ55viWQJo0C2ovK85QkjPNesriLz9xVIxIIirgAMreVrrUH9bdlwIadEiUKGjIQiYvWe06qv8jEUacpzYrYj04w2rmPbDnOjlkPbYc9s9QLH7JkdGrntnuN0TJdoVk9IHvMMxMllkT2iyMeVlKqcybOld6OBjwuHLZf8uU8l0qDIt0Ki6u89jwyilGdc5ZLmQoJNPNAKxTWt3YJbI84KQ8hYs0fV2z5YGd8l5EFkZCaeiNUjrRYsmQ58tW1itSwL9DBswaepdeTAB_vtwSLpzriq7jP7oMf8qoE6VtdlDu1GTrcbRpt2uwcfO-h2KQ1p4JqmDYZqtUI0UKVy91IbDzzcUs3raD2L3GuerQ1tme1RJWks4A4VwrJciB_oY0nzUh_gBRbqo9Muv076ML_Xh9YZhil9ZFrHJ2P-An9Z9E3lkVGuYhBtaRaBZ893LBsufaK2VLKIJDyQVHKmGqiOd01ExHs4R3SJgIAVD8hDISUL82RvnJCttlxheEuI2YhEAt7IRF4G_BmqPVH7NOHZYxWeosjJcv73aLGczGfg3yeESpB8yyB8VZHkRGzIBlhd10jAOhgCRzLsiUnCgDDiPOFAydbLd4PFyF9PJ8PFYPFlvfw4Hk8-G8CxIM9CPhIqRQFv5lvMLR4QBFzANRJPRMzDEzrQDrjRDqRpskZjyjPIORWx1WA18S6IEVQJVapIWUO-c60IwCifuWLGNVN9KtMWOA5mLg9U8VJyEIos4pgFKy0AfxuaJCSg4SM-aJZV8wi2UTnky4YwR01aZEchCfINICc0zAtAsSfPVIGAoYgz_o0h94ReshwU-YWqa4CcypgBrkQyGu0Je4G8waKrgoEPggkhijtuq-Ncg_D5ZsMkBBSnCVmwJ65AXoykbZ7vFBYHawwXmI2zZ2VgMigDzxr7pt2zHfPnCeSdeD7VIUhm199AWBPQBmU-DqjaNlEpEFh_IY0H1tw24BWwVi55AHeReM4SQaP1ToJo_xQgU36I0fQx4pKI4Cv8q1NXdPaoWe0PnyAxjY0a6YbHBbikrgM28AzN9s9BsNKih4JdseLqOstokDAdq2tBYyBs-yG4FfwN8arYwHSgf7WtxmON5DcVelbYm7C_qN-mMistN7F489l4cr8ezPz18ONk6oMsEAOqhgenhtSJgQAqMdHXUTu2X4ZG-diBxyHEUnbyuCsooUTXGDe8Sb3cX6--fBgB0KLuNFADpw4DWDiD8rHZaL7tTxawvC6VVa1PZpBGptN6p2K-sifqcH0wg2U1Wak6G4C8ZB9EHkKmPMgnU6LLDQKeyNdbletd26nKjL6saq0-PAMi-j2Z8ewrBW02ErjuT6d_P6w9b-C9Gx01OZ9dQnkPg_ejtbf25g8fJtNRJfIYcxL2RuI7Bz66CPZl13F9_vwGbJX3X8d4sMiHxQjy-dEoTUOVznTl1TPjH9WGz1fVNfr8YbSYPIxmgHi9GizuR6vlejU_6g_oTIXI4oEMt1doVjhmg-F0BMzO_xp5q2X1Vh2Gr74xWC5HixVU4uVVSzVB597gYerPPQQcj1-DHE5m_mR2v3wFstJJeet_gdr5Y-rTyez9JeABKIBy81g9RCI7S7-1_-pVRjp33q_kkOReg9LrohZuWfioV8r8aR5cwSzyg2TXJpia66g_-CBGl55AGT7kTBxm4N-vzD5Ef6pwH5Bgjbxw_XJrJ8VX6N6Oo9a4yGFYwkeen76rraq6GLs9tuydLqKERqNsZAvFYTirGP0ppQs5G-rT9VJLvMJiluNb2YeZZXcGrRjovgIdDyZTBPrtsRCbeRNbSPPYzmvW2y-yGi1XgLP7-_Op1SUoxQgL0L_goRRhGUq-QysfFFlLVhqju_g4wztoGaHZZih5F-sAeYOhiB6GJoGcCYMnCKlztYd-Lv1VTEnZ8hw8GqY_C4aOMCkiCLVMQNtYoYM1om8C0B2MBtBJQcsDiEBteqhvoY-EBl8HqFzfhVuii1-lDnNY6dw_jqh5ke-K_DWzGTnMoUj2dZo_JjHJgMJ3ngEYje1rRrNvw2gUBf3GjjdSh7SBJwVAHHtLCUhgF3q3YqdXY8gR9GRyzPFNBJB3iNhBYjCEejFCEQpqHNQXcMhSe2Mmsmm1wqIltNZZ7GF2ZjimD472W7CdkHndxF2QOYD7b6X0RnyjdJfvpw1n8GA2YC95E2utb_3njvdnnF2HOZhv9j9zvjeUqvOENXqBgufhuQ0WgLPeXqQpjs4V05jFwfGYxNOv79IeLFfHMxAzz1RmWFAg20acxuivPFQwh-6AZZhPYXAt52XFWDlJHhqIcdVB_8fSkinGstXuIKmjF8E8jm5EUhpKAZO1KKDlOIQYBfYyyHbgJHjikML0SzZCEoipTCV4Aqf-Pzw7N8hz9_Z47pg3yLN1gzzbN8jzLfpz7wZ5dm-PZ-cG_dlp3yDPN1i7nT_hz6ZNykZLkZhlTNLTsf7FEPqvh-z_CsOYgpKj8oxBlecAzeaR_P5Zwpl85Xd9fEFWPC1b2JZhmScTl-Sbne35QdAd65uO4zqm5badu6hvR67t0ruc5wnr__5BR-N37-r39btCJv3zX0pi2C0CmEtS7XjOc-F1XKmCIaWOa1ndu20_CNvd0O50um7PdQIztKjTgkfTNl03cE33LqEBS1Rf6ww1y8rYMylR4Clpx7_jffxt0zStXqtjwccII3tjR3YY9hzGQtfS2i2WAuvHX2_uZL9kKShiBZsJB-udNimIG2eMleQAPy1_m-0v-csnxrHzvyup90vu_wcnsSWY">