<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/54238>54238</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
aarch64 frontend crash when use &&labels
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
ashimida123
</td>
</tr>
</table>
<pre>
> Stack dump:
> 0. Program arguments: /mnt/disk0/disk0/toolchains/llvm/clang+llvm-12.0.1-x86_64-linux-gnu-ubuntu-16.04/bin/clang --target=aarch64-linux-gnu -O2 -S main.c -o main.s
> 1. <eof> parser at end of file
> 2. Per-module optimization passes
> 3. Running pass 'Function Pass Manager' on module 'main.c'.
> 4. Running pass 'Combine redundant instructions' on function '@set_return_addr'
> #0 0x00000000024c18a3 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/mnt/disk0/disk0/toolchains/llvm/clang+llvm-12.0.1-x86_64-linux-gnu-ubuntu-16.04/bin/clang+0x24c18a3)
> #1 0x00000000024bf7ee llvm::sys::RunSignalHandlers() (/mnt/disk0/disk0/toolchains/llvm/clang+llvm-12.0.1-x86_64-linux-gnu-ubuntu-16.04/bin/clang+0x24bf7ee)
> #2 0x00000000024c0d5d llvm::sys::CleanupOnSignal(unsigned long) (/mnt/disk0/disk0/toolchains/llvm/clang+llvm-12.0.1-x86_64-linux-gnu-ubuntu-16.04/bin/clang+0x24c0d5d)
> #3 0x000000000244d170 CrashRecoverySignalHandler(int) (/mnt/disk0/disk0/toolchains/llvm/clang+llvm-12.0.1-x86_64-linux-gnu-ubuntu-16.04/bin/clang+0x244d170)
> #4 0x00007f8d11453980 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x12980)
> #5 0x0000000001dcd4f5 llvm::ConstantUniqueMap<llvm::ConstantExpr>::getOrCreate(llvm::Type*, llvm::ConstantExprKeyType) (/mnt/disk0/disk0/toolchains/llvm/clang+llvm-12.0.1-x86_64-linux-gnu-ubuntu-16.04/bi
> n/clang+0x1dcd4f5)
> #6 0x0000000001dc2087 llvm::ConstantExpr::getBitCast(llvm::Constant*, llvm::Type*, bool) (/mnt/disk0/disk0/toolchains/llvm/clang+llvm-12.0.1-x86_64-linux-gnu-ubuntu-16.04/bin/clang+0x1dc2087)
> #7 0x0000000001868655 (anonymous namespace)::ConstantFoldConstantImpl(llvm::Constant const*, llvm::DataLayout const&, llvm::TargetLibraryInfo const*, llvm::SmallDenseMap<llvm::Constant*, llvm::Constant*,
> 4u, llvm::DenseMapInfo<llvm::Constant*>, llvm::detail::DenseMapPair<llvm::Constant*, llvm::Constant*> >&) (/mnt/disk0/disk0/toolchains/llvm/clang+llvm-12.0.1-x86_64-linux-gnu-ubuntu-16.04/bin/clang+0x186
> 8655)
> #8 0x00000000018689ac llvm::ConstantFoldConstant(llvm::Constant const*, llvm::DataLayout const&, llvm::TargetLibraryInfo const*) (/mnt/disk0/disk0/toolchains/llvm/clang+llvm-12.0.1-x86_64-linux-gnu-ubunt
> u-16.04/bin/clang+0x18689ac)
> #9 0x0000000002035414 combineInstructionsOverFunction(llvm::Function&, llvm::InstCombineWorklist&, llvm::AAResults*, llvm::AssumptionCache&, llvm::TargetLibraryInfo&, llvm::TargetTransformInfo&, llvm::Do
> minatorTree&, llvm::OptimizationRemarkEmitter&, llvm::BlockFrequencyInfo*, llvm::ProfileSummaryInfo*, unsigned int, llvm::LoopInfo*) (/mnt/disk0/disk0/toolchains/llvm/clang+llvm-12.0.1-x86_64-linux-gnu-ub
> untu-16.04/bin/clang+0x2035414)
> #10 0x0000000002035ec1 llvm::InstructionCombiningPass::runOnFunction(llvm::Function&) (/mnt/disk0/disk0/toolchains/llvm/clang+llvm-12.0.1-x86_64-linux-gnu-ubuntu-16.04/bin/clang+0x2035ec1)
> #11 0x0000000001e6ca1d llvm::FPPassManager::runOnFunction(llvm::Function&) (/mnt/disk0/disk0/toolchains/llvm/clang+llvm-12.0.1-x86_64-linux-gnu-ubuntu-16.04/bin/clang+0x1e6ca1d)
> #12 0x0000000001e726f3 llvm::FPPassManager::runOnModule(llvm::Module&) (/mnt/disk0/disk0/toolchains/llvm/clang+llvm-12.0.1-x86_64-linux-gnu-ubuntu-16.04/bin/clang+0x1e726f3)
> #13 0x0000000001e6d08f llvm::legacy::PassManagerImpl::run(llvm::Module&) (/mnt/disk0/disk0/toolchains/llvm/clang+llvm-12.0.1-x86_64-linux-gnu-ubuntu-16.04/bin/clang+0x1e6d08f)
> #14 0x000000000269d3b5 clang::EmitBackendOutput(clang::DiagnosticsEngine&, clang::HeaderSearchOptions const&, clang::CodeGenOptions const&, clang::TargetOptions const&, clang::LangOptions const&, llvm::Da
> taLayout const&, llvm::Module*, clang::BackendAction, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream> >) (/mnt/disk0/disk0/toolchains/llvm/clang+llvm-12.0.1-x86_64-li
> nux-gnu-ubuntu-16.04/bin/clang+0x269d3b5)
> #15 0x000000000319415f clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) (/mnt/disk0/disk0/toolchains/llvm/clang+llvm-12.0.1-x86_64-linux-gnu-ubuntu-16.04/bin/clang+0x319415f)
> #16 0x0000000003be7554 clang::ParseAST(clang::Sema&, bool, bool) (/mnt/disk0/disk0/toolchains/llvm/clang+llvm-12.0.1-x86_64-linux-gnu-ubuntu-16.04/bin/clang+0x3be7554)
> #17 0x0000000002bea627 clang::FrontendAction::Execute() (/mnt/disk0/disk0/toolchains/llvm/clang+llvm-12.0.1-x86_64-linux-gnu-ubuntu-16.04/bin/clang+0x2bea627)
> #18 0x0000000002b75151 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/mnt/disk0/disk0/toolchains/llvm/clang+llvm-12.0.1-x86_64-linux-gnu-ubuntu-16.04/bin/clang+0x2b75151)
> #19 0x0000000002c7f38c clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/mnt/disk0/disk0/toolchains/llvm/clang+llvm-12.0.1-x86_64-linux-gnu-ubuntu-16.04/bin/clang+0x2c7f38c)
> #20 0x0000000000a06e72 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/mnt/disk0/disk0/toolchains/llvm/clang+llvm-12.0.1-x86_64-linux-gnu-ubuntu-16.04/bin/clang+0xa06e72)
> #21 0x0000000000a056b7 ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&) (/mnt/disk0/disk0/toolchains/llvm/clang+llvm-12.0.1-x86_64-linux-gnu-ubuntu-16.04/bin/clang+0xa056b7)
> #22 0x0000000002a39b12 void llvm::function_ref<void ()>::callback_fn<clang::driver::CC1Command::Execute(llvm::ArrayRef<llvm::Optional<llvm::StringRef> >, std::__cxx11::basic_string<char, std::char_traits<
> char>, std::allocator<char> >*, bool*) const::$_1>(long) (/mnt/disk0/disk0/toolchains/llvm/clang+llvm-12.0.1-x86_64-linux-gnu-ubuntu-16.04/bin/clang+0x2a39b12)
> #23 0x000000000244cf5d llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) (/mnt/disk0/disk0/toolchains/llvm/clang+llvm-12.0.1-x86_64-linux-gnu-ubuntu-16.04/bin/clang+0x244cf5d)
> #24 0x0000000002a394b9 clang::driver::CC1Command::Execute(llvm::ArrayRef<llvm::Optional<llvm::StringRef> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, bool*) const (
> /mnt/disk0/disk0/toolchains/llvm/clang+llvm-12.0.1-x86_64-linux-gnu-ubuntu-16.04/bin/clang+0x2a394b9)
> #25 0x0000000002a0941d clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&) const (/mnt/disk0/disk0/toolchains/llvm/clang+llvm-12.0.1-x86_64-linux-gnu-
> ubuntu-16.04/bin/clang+0x2a0941d)
> #26 0x0000000002a09667 clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*> >&) const (/mnt/disk0/disk0/toolchains/llv
> m/clang+llvm-12.0.1-x86_64-linux-gnu-ubuntu-16.04/bin/clang+0x2a09667)
> #27 0x0000000002a21208 clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*> >&) (/mnt/disk0/disk0/toolchains/llvm/clan
> g+llvm-12.0.1-x86_64-linux-gnu-ubuntu-16.04/bin/clang+0x2a21208)
> #28 0x0000000000a0506d main (/mnt/disk0/disk0/toolchains/llvm/clang+llvm-12.0.1-x86_64-linux-gnu-ubuntu-16.04/bin/clang+0xa0506d)
> #29 0x00007f8d10326c87 __libc_start_main /build/glibc-uZu3wS/glibc-2.27/csu/../csu/libc-start.c:344:0
> #30 0x0000000000a023d9 _start (/mnt/disk0/disk0/toolchains/llvm/clang+llvm-12.0.1-x86_64-linux-gnu-ubuntu-16.04/bin/clang+0xa023d9)
> clang-12: error: clang frontend command failed with exit code 139 (use -v to see invocation)
> clang version 12.0.1
> Target: aarch64-unknown-linux-gnu
> Thread model: posix
> InstalledDir: /mnt/disk0/disk0/toolchains/llvm/clang+llvm-12.0.1-x86_64-linux-gnu-ubuntu-16.04/bin
> clang-12: note: diagnostic msg:
> ********************
> PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
> Preprocessed source(s) and associated run script(s) are located at:
> clang-12: note: diagnostic msg: /tmp/main-ebca80.c
> clang-12: note: diagnostic msg: /tmp/main-ebca80.sh
> clang-12: note: diagnostic msg:
> ********************
Code in use:
`#include <stdio.h>
static __attribute__((noinline))
void set_return_addr(unsigned long *expected, unsigned long *addr)
{
unsigned long * volatile *ret_addr = (unsigned long **)__builtin_frame_address(0) + 1;
*ret_addr = addr;
}
int __attribute__((optnone)) main(void)
{
do {
if ((volatile int)0)
goto normal;
if ((volatile int)0)
goto redirected;
set_return_addr(&&normal, &&redirected);
normal:
printf("foo \n");
break;
redirected:
printf("bar\n");
} while (0);
return 0;
}
`
[main-0a64b0.zip](https://github.com/llvm/llvm-project/files/8193923/main-0a64b0.zip)
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzVWltzozoS_jXOi8oubsb4IQ-OnczMbmaTSnL2VO0LJUAk2oDklSCX8-u3JcBIYGcuJxOf45rKcGm1-utu9UUo4dnrKZo4m4mzmvjn6LbC6SPK6nI78Vfo7_TrMTiz5sm14PcClwiL-7okrJIK0sS7KFkFfzMqHx3j_4rzIn3AlEm4KYqnEv5LC8zuJ96Zup263syZudOXKIzDYFpQVr9M71k9rZOaVfXUDWdOAGMSyrqRaDqtYHJSTfwNxiJ9MMeh6ZWHpreohClnKZry5koexuW2uCb-mvBcPdliIYlAuEKEZYjnKKcF6Qd4nSKImJY8qwuC-LaiJf0DV5QzGC4lkT2939Lf1IxREF-9B4UtLmqW6gHX6sFXzPA9EfAcwaOWL9w1QOBi1nMMDnBc8xL0RJAgWc0yzCoEeq9EraeRLeu8mxbuJ4EjSRULUtWCxTjL1Pz9PEDiO8h5cbqfF6RuhH2kDekDzUq-yubiWlBWaT-_EzglEy_qiQR-jjkIQjCYP5x4a5ALnGUJ_KOP9BwY6by0GGB6G6hrA03yBSH7gILSb-k9w8VnzLKCCKlBHAuLFnOExRsYzcnm2T4s64JgVm-vWkQAoWYSLglQczXH0UykJB7B8m1YQeYuHLQWWD7ckJQ_EfFqWQZEP6qfaflGIIIWxCKPMtcN5v4yclAMa1BWXJBYVK20BU3g73DW5sW2eoDFlM0knzl6MtcDLqOp5qa-3CzNgnxuuMEagkIFUeI3Rv9Xk68YktN6_Pb8ZSuAYfMQou6VWMPclb3C71638GCllvZ-Dv8krw3NRxmj14RtllYNI12FA115TrQ4gGWnijNarbGsLE10hCNtGCpKAOWx3LKFNsK_sPBHYRTO50pAzDh7LXktEcMlkVsd25c21gteZN31l3Jb7FUIStXFSC0bXOFL_MrrHUE40JvO9Zc0EVi8fmE5P8DotsRFsSFMHvTkgw7avDD0EdQDIVu2avqDrGGNWIMyUmFa2AyuMRU_LhuIpLmHR3OaKOy1ozxj5D7R0H2WON2DxvSUD_OSX6mzXgtvak-pY6SzpZXOHH8euAGIrWu4L0bhdgWZrSsWLaX1DwfaUKPbYvB3Lh4Lukdjq9UNkXUB9ftQ2SspoVNRjNc4fSDf1vUBCigEmcy5KPfSbHivjZIyDNnvTpDxbFdGbX1DSiwez0taVSq9DyjPCp4-XggCyYylrWADaNC8qGL-ti7LneyaZFf36IrBHHLJ-XZH-MtcyfCjN4uKxkssV1K1qzN0JZK6A39ovalxC-gaVNfRluc1u2LfdrAjlVENmBFiq1x3SZhi1yxxL64Vvq6p-uvDbBGMYHo2zIUX5v53wPyq-0cLZPfoiBC19COI_sCSmRPlBsSC3OP0tV2-PVhdZ3SA_2pANYYR0MBapOEy85M5aoZpwVVcO4MGmrDsqq62tcqQxusNxfcM2miaynN2D6G9DYAGyWdoCoi4JWpX5EpHcGnlS4N0zTPyibBvUDWB_BtEl3C1j8RM370mvpHIO-utBpO0ilm1C3WNZJU1b2rdvsTbyq6s1KbD9lnQisTd1oMxKCM5huQXZ6Qg0Mu8PbCrv97ZnYwW5TtjYeMzI8ey-jzfXQbuPN-jO1Vj1WUXJ5omWefoQidXaAMHHre6vYMxFXmpjriaWjwj0FbD5idkMZ8HJuhrtYsHCGxIt1BBtD7XdGHH7cZauUfgrG7MSwgOvYUJ7kIou-yWQxM-Xkha6778aLm6EXSEJrLRLObu3LVjUbmFqkx80T0ANJgmnm7FR4fhH7E6acCMENulfbrI_Si1Qn2DrQf-xFM8xjlSzK9uZ95A2oAYIvWsytPBTghZHqWpG6uNaysvr4TArzckh2ALAoq-QWsaZ_sZPHjiNDsi4AbKCK87wDsPkwXqzLl273QwMVDrbYl_kxTam6Zk2QP-aO7biD_CaG8fY3-ZQB2qzGHk6e4zQiy0RfXbJvTsNgtTQJ5A6olzpmD3bp0J-tSlIdAZeHkJyWgYxfZ6jt0XcrVpbT68rQS0Npq0zdlGzo_j9OXFdZubBEuaqgRPlVTaKBaxehBXAlP1gcvYG9KEA8aAUy1fLjpG3eTGbp_248bqeszEC2JXE0VH3WpvrDtygeFWe5pbXxCsTfeuRth9HsE5KV4tC77tLcfboVewRtiDofsHyRL9rd33zzutNpChpSO4KVhBifOOn7SVsee2sR0oNrODxtbpGI9Krs4DrNw9GKgIDjVQb5Cu2uzQG-HdVW9sPX3LCFo7P2UEW-nhUOlhuPhRpf-DJ_KwxuHtJZWHmsxxUt4ti22zQ99uA36vkawd-h-3lbET-m4LRit1FNvsxgJ7rudEh1BujGurYN1TqR6y2Mdq_mfWR6-fP69zrc53CVLv97PtHw3LVyfM9BGZY9WfMP_7KszGuzS_tjsQedJogeK4oInKnlhUcQv-IqlpAaJc3Kt30_o_tf98u7v1ZqqtvUil-gA_m-0u9UvNZ5aCd_pBAH8dSwR_2CF5frZEzeRHUrqS4D2VblTHahYQDLSAiBCquFg1D1He9uzqC5dewjmG1jZDz7R6QOSFqlidEeT6ehnXkqDpE6o4koQgavTHy8FsCGKDVOeZGnW8G6gP_vWo7trDbSvUnW6r2SPjz8w45fb3-Rm49JkVdbSNqJ17tOWSvuwn1fsdBXjHhmoP-og18hEqMJcH42rfeYWy3bY-KqXKeL9OkJ_9mfFs9fP_dlyuL89Xt-dodXe3Wn9Gd5_P0cXV5eXV71_-9QldfLk8v0V3V_rx2W-f0M359dXNncr-_XhBtoKnREqIH5LXQp83lCqkqcCCpeQpxRW8FDVDMhV0W-0IBEG68YG3uLLYfp91lNeVW-WR4HZTkqQ4ciD4vwcX-fCDbN7VMPqv-iwE4RZB_O35N39DWHA-ZWlRA0lTuFE-e1DVl0EGC1fJF8e4guY0gZoxjnWWixinrNCfrZa7KK43AkZHUO1TiAobedlCzUgy61N997IZ1OWFxVlzoRx3RIqeuCpM9dHaFcypJwQwG7Rv1qYBjmNVGlSUxbnAJdFDwPVggNPUnGcImnJj1iFrLV9HMFlsTHVBtbtPV3xbMd6pCrVbqc2G6D6cGUfWvfrRvKkuoh3k5jBkf0zQXOL3HFIt46JUOxJ_npMgGRWNxYbc-oDS3Y3tr8v5sBUHTN7cG0zVvlHLtxN6NeC6VQeSc83MyzkoaL4GJXrm0I40gcT0OHra3JlIVodnSLB4YwLDNxYb9PzQOGBzYtPyHMMz1H2jFeSY3tOThV2hOT_TUcTBYZA4sz_odjLfAPuHqtrqIx7ehSpkoc6qkxlUX32q1CkSQul_ASDcqqMxKpFG7tJfen4XnQy-O-_Tf0-yU6gk_SU-qWhVkNO2XjFKPbVNCHiJDiitGQuckEKe1KI4_WEJqZS1FnEeeH508nAaBfMg8IIgjxbEScjcJ36SkMRdeAl0Fgk-aWY7BR2BbRh5RpqFstN8c0JPPcfzHN9ZOI4futEsjNxo6YVemMzThZdnk8AhoINipuSYcXF_Ik61SEl9L-GlOlkl-5eQeVQEIXo64I_r6oGLU1ACLWmGXc8_0dOfavH_D5ZpRsQ">