<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/57791>57791</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            Clang assertion failure in clang::CodeGen::LValue::getPointer when accessing a bitfield in an asm block: Assertion `isSimple()' failed
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          tahonermann
      </td>
    </tr>
</table>

<pre>
    Clang (16/trunk) fails the following test case when built with assertions enabled.
```
$ cat t.c
struct {
  unsigned bf:1;
} s;
void f()
{
   __asm { mov s.bf,eax }
}

$ clang --version
clang version 16.0.0 (https://github.com/tahonermann/llvm-project.git 6073e0a2f7018fb01283f48e946a45aff5512eae)
Target: x86_64-unknown-linux-gnu
...

$ clang -c -fasm-blocks t.c
clang: /iusers/thonerma/llvm-project/clang/lib/CodeGen/CGValue.h:338: llvm::Value* clang::CodeGen::LValue::getPointer(clang::CodeGen::CodeGenFunction&) const: Assertion `isSimple()' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace, preprocessed source, and associated run script.
Stack dump:
0.      Program arguments: /iusers/thonerma/build-llvm-project-main-Debug-On/bin/clang -c -fasm-blocks t.c
1.      <eof> parser at end of file
2.      t.c:4:6: LLVM IR generation of declaration 'f'
3.      t.c:4:6: Generating code for declaration 'f'
 #0 0x0000000005aa8fbd llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /iusers/thonerma/llvm-project/llvm/lib/Support/Unix/Signals.inc:569:22
 #1 0x0000000005aa9074 PrintStackTraceSignalHandler(void*) /iusers/thonerma/llvm-project/llvm/lib/Support/Unix/Signals.inc:636:1
 #2 0x0000000005aa6fe2 llvm::sys::RunSignalHandlers() /iusers/thonerma/llvm-project/llvm/lib/Support/Signals.cpp:103:20
 #3 0x0000000005aa8908 llvm::sys::CleanupOnSignal(unsigned long) /iusers/thonerma/llvm-project/llvm/lib/Support/Unix/Signals.inc:361:31
 #4 0x00000000059d2605 (anonymous namespace)::CrashRecoveryContextImpl::HandleCrash(int, unsigned long) /iusers/thonerma/llvm-project/llvm/lib/Support/CrashRecoveryContext.cpp:77:5
 #5 0x00000000059d2aeb CrashRecoverySignalHandler(int) /iusers/thonerma/llvm-project/llvm/lib/Support/CrashRecoveryContext.cpp:398:1
 #6 0x00007f24d6c64b20 __restore_rt sigaction.c:0:0
 #7 0x00007f24d574537f raise (/lib64/libc.so.6+0x3737f)
 #8 0x00007f24d572fdb5 abort (/lib64/libc.so.6+0x21db5)
 #9 0x00007f24d572fc89 _nl_load_domain.cold.0 loadmsgcat.c:0:0
#10 0x00007f24d573da76 .annobin___GI___assert_fail.end assert.c:0:0
#11 0x00000000060e6e97 clang::CodeGen::LValue::getPointer(clang::CodeGen::CodeGenFunction&) const /iusers/thonerma/llvm-project/clang/lib/CodeGen/CGValue.h:339:12
#12 0x00000000060e6edf clang::CodeGen::LValue::getAddress(clang::CodeGen::CodeGenFunction&) const /iusers/thonerma/llvm-project/clang/lib/CodeGen/CGValue.h:342:12
#13 0x00000000060e13de clang::CodeGen::CodeGenFunction::EmitAsmStmt(clang::AsmStmt const&) /iusers/thonerma/llvm-project/clang/lib/CodeGen/CGStmt.cpp:2457:47
#14 0x00000000060d7c1f clang::CodeGen::CodeGenFunction::EmitStmt(clang::Stmt const*, llvm::ArrayRef<clang::Attr const*>) /iusers/thonerma/llvm-project/clang/lib/CodeGen/CGStmt.cpp:157:75
#15 0x00000000060d8d41 clang::CodeGen::CodeGenFunction::EmitCompoundStmtWithoutScope(clang::CompoundStmt const&, bool, clang::CodeGen::AggValueSlot) /iusers/thonerma/llvm-project/clang/lib/CodeGen/CGStmt.cpp:496:3
#16 0x000000000618e328 clang::CodeGen::CodeGenFunction::EmitFunctionBody(clang::Stmt const*) /iusers/thonerma/llvm-project/clang/lib/CodeGen/CodeGenFunction.cpp:1239:36
#17 0x000000000618f1c1 clang::CodeGen::CodeGenFunction::GenerateCode(clang::GlobalDecl, llvm::Function*, clang::CodeGen::CGFunctionInfo const&) /iusers/thonerma/llvm-project/clang/lib/CodeGen/CodeGenFunction.cpp:1447:21
#18 0x00000000061bdce1 clang::CodeGen::CodeGenModule::EmitGlobalFunctionDefinition(clang::GlobalDecl, llvm::GlobalValue*) /iusers/thonerma/llvm-project/clang/lib/CodeGen/CodeGenModule.cpp:5322:3
#19 0x00000000061b6885 clang::CodeGen::CodeGenModule::EmitGlobalDefinition(clang::GlobalDecl, llvm::GlobalValue*) /iusers/thonerma/llvm-project/clang/lib/CodeGen/CodeGenModule.cpp:3597:47
#20 0x00000000061b5828 clang::CodeGen::CodeGenModule::EmitGlobal(clang::GlobalDecl) /iusers/thonerma/llvm-project/clang/lib/CodeGen/CodeGenModule.cpp:3338:5
#21 0x00000000061c1dde clang::CodeGen::CodeGenModule::EmitTopLevelDecl(clang::Decl*) /iusers/thonerma/llvm-project/clang/lib/CodeGen/CodeGenModule.cpp:6181:37
#22 0x0000000007356136 (anonymous namespace)::CodeGeneratorImpl::HandleTopLevelDecl(clang::DeclGroupRef) /iusers/thonerma/llvm-project/clang/lib/CodeGen/ModuleBuilder.cpp:188:7
#23 0x000000000734e264 clang::BackendConsumer::HandleTopLevelDecl(clang::DeclGroupRef) /iusers/thonerma/llvm-project/clang/lib/CodeGen/CodeGenAction.cpp:234:11
#24 0x0000000008e8f302 clang::ParseAST(clang::Sema&, bool, bool) /iusers/thonerma/llvm-project/clang/lib/Parse/ParseAST.cpp:166:20
#25 0x0000000006a1a751 clang::ASTFrontendAction::ExecuteAction() /iusers/thonerma/llvm-project/clang/lib/Frontend/FrontendAction.cpp:1152:11
#26 0x000000000734b9ef clang::CodeGenAction::ExecuteAction() /iusers/thonerma/llvm-project/clang/lib/CodeGen/CodeGenAction.cpp:1145:5
#27 0x0000000006a1a07d clang::FrontendAction::Execute() /iusers/thonerma/llvm-project/clang/lib/Frontend/FrontendAction.cpp:1049:38
#28 0x00000000069580ba clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) /iusers/thonerma/llvm-project/clang/lib/Frontend/CompilerInstance.cpp:1043:42
#29 0x0000000006b9f80c clang::ExecuteCompilerInvocation(clang::CompilerInstance*) /iusers/thonerma/llvm-project/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp:266:38
#30 0x0000000002710caf cc1_main(llvm::ArrayRef<char const*>, char const*, void*) /iusers/thonerma/llvm-project/clang/tools/driver/cc1_main.cpp:250:40
#31 0x00000000027028fb ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&) /iusers/thonerma/llvm-project/clang/tools/driver/driver.cpp:317:20
#32 0x000000000682995d clang::driver::CC1Command::Execute(llvm::ArrayRef<llvm::Optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) const::'lambda'()::operator()() const /iusers/thonerma/llvm-project/clang/lib/Driver/Job.cpp:428:32
#33 0x0000000006829ec4 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::'lambda'()>(long) /iusers/thonerma/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:46:40
#34 0x00000000047bd23c llvm::function_ref<void ()>::operator()() const /iusers/thonerma/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:68:62
#35 0x00000000059d2ca5 llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) /iusers/thonerma/llvm-project/llvm/lib/Support/CrashRecoveryContext.cpp:434:10
#36 0x0000000006829b4a clang::driver::CC1Command::Execute(llvm::ArrayRef<llvm::Optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) const /iusers/thonerma/llvm-project/clang/lib/Driver/Job.cpp:428:7
#37 0x00000000067d1a6c clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&, bool) const /iusers/thonerma/llvm-project/clang/lib/Driver/Compilation.cpp:200:22
#38 0x00000000067d1da5 clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&, bool) const /iusers/thonerma/llvm-project/clang/lib/Driver/Compilation.cpp:254:62
#39 0x00000000067e2612 clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&) /iusers/thonerma/llvm-project/clang/lib/Driver/Driver.cpp:1783:28
#40 0x0000000002703d1a clang_main(int, char**) /iusers/thonerma/llvm-project/clang/tools/driver/driver.cpp:513:39
#41 0x000000000272d22d main /iusers/thonerma/build-llvm-project-main-Debug-On/tools/clang/tools/driver/clang-driver.cpp:11:63
#42 0x00007f24d5731493 __libc_start_main (/lib64/libc.so.6+0x23493)
#43 0x000000000270120e _start (/iusers/thonerma/build-llvm-project-main-Debug-On/bin/clang+0x270120e)
clang-15: error: clang frontend command failed with exit code 134 (use -v to see invocation)
clang version 16.0.0 (https://github.com/tahonermann/llvm-project.git 6073e0a2f7018fb01283f48e946a45aff5512eae)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /iusers/thonerma/build-llvm-project-main-Debug-On/bin
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJztWltzozoS_jXOi8ouJO4PeXDsJDtbOTVTk-zsIyVAOOwAciFInH-_LQkMIrYn1znn1G7KsUESre_rbrVaQjFPn85XBa02aEYC7M3IVVO31c8ZCVFG80Kg5p6hjBcFf8yhUcNEgxIqGHq8ZxWK27xo0GPe3CMqBKubnFcCsYrGBUsXM2s9s5Yzz-o--pY4IKBBzSLRBQI6TBo08y_0PUJtJfJNxVIUZzN7iWd2VzPz10js7x54nqIMUAPWvn4vAkURFaUUikr-gMQCRJEVozsoWu-ldRcDLqWI-fyB1QKY6Apd2BUh7C2shSWVdd80W0ADD17BZwM6aONFwkupQnrPK1aXtKrgrigeyvm25v9hSbOAdsizfJtZlGS-hYMstjAJ7MwJWOh41HFplrkuJoyyPbE7Wm9YA32hXeBFnjMHC1X8sZoXedXu5puq1e0Wi8URSgmaZ6CQeVzw5KcYlK-qpWDAmbdgQSHhd-gn2OFWN4fiPIbvFU_ZNZMUV9c_aNGyxT2Isu1ACpRPSu3YS1U1I0vUdwaf_lF1c6NbqGvg-Y3nVcNqUPGxB7qbq7ZKpMfNiCf9NQHfU0pa9q6IwOtycZuX24J1jkJ85dd77_x2c7m8vUSijUuwDAWP3qCabXkNHsrRCRsrfs8UlAvRMqlDRKsU5VVStClTYyipqbhHMU1-NjVNAM4KbaGjmicM4KZI8LbWxfJJGE08yWkDFTAckUjqfNt0kG8bEILSttxKZKrIWiD1963mm5qWCPylLVnViBOmlWM3nY_xz0uaV_M1Ax3Mv0qzxnnVG_24C-Gu75m9YhwG7CXa0hq6QzDIGVDhGcpA4box6RrLp-2lA_-ehHhz8-MP9OU72jBAR5Xp4LGUQdfdLRgORrCvpdiHpVx3TwPaBDwEwlZ9XAbc2Raydlb_51IKgzEdOa54EvriWw0eqdR-p20XDI1q-hhxiGGMlsoPV2D1Rrrjy0ZU70ZqQN22W-l5cPWvKt_JAoiDtBALcCToyvVC-CZkIIAnBELLd9AErZbxD_CqQg0qGTdhNH4ORM_2VMjeIyQThF7GyCEVf28rA6jQ4_V9EHtsyVYOFWzZUn3WAM6e2j-0gkPgVgWjVbv92kEEaPspquAyIH6GKm0Py--RLh0DbpgSz3LlTEQrXj2VvBWooiUTW-WiYQddhp3vLOEwgT2tOATWXfMF4qGu1cpWbUCOctwV-lhuhwB0BvF96dQDP3fKj7IYGc9PffkjhtoJgHYYmN7sdQj9jDipl3hOTCxINWrIinjNIpg0QHVUTUoqNFnqf_-4P37c9R3X9jNU0xzSKeXuEpvn6N9kIfgC4smFtbN9WwaucBAUmIJIlsYuorGctU4JIhjaGYLCqaAkCFFUFVHBaRqlXM4IMOEVKeQ8sqgUG0jeptxkJLJMSXZKfQ8tIAPiMItEUXT9JZI5mZyZIzkDL5ie5uD-kDgjsnkW81jo_5YE4kMzITkIMRlYkWes0uylrJZpCn4m_nxWDpmwsiessA2T70tBqsJLSL6Worxtysbk1xV2uZ0m9F4qUmA3wInjyhjk-AMZxyST-gk-bqKjZJ4zGdNYyjA7zDPLuqZP3xnkTqsx9aaphwfsyw-mjhVz3x2YuxPmQerg1zNf8XLL2yqVXf0bEmbeNrcJ37Kp3w6tRsZdoZjzQv4e63e52ShXvC34K0L_izTihDJ3sQeFeIZCcMBsErxeIX3JBSy1T7rEu8mYCHo7ExWFIC_b8_InvDKcvNLQXabNZKXJ6brgMS3WkHWbPj4EpeUp866u-4Zfqox_5LA_rBzHkaOA4EE5gamcOE3YL5XzB0_bgg0m10ro-1qzLK9yTf4lqtLl_ar5w6hrkB1x1ybEdPZwwtsLAvdtvP-KfG03nAR6Yk0Iu8GvR_dhwsdpfgoVvcEyBG5i5kowmNNfz79TJnd8e8MeWId7zEeXfJJdIPqoVc7ILkaO5NuuhyHt_tUqR4uWMYnX0-XNaWrXNW-3cvJ9Nz9N7EJuq7C6DzCBtNWInW2ycxjxnLGtLmDZDpkxrENEW0IO-yfw6K6W40AJi0_JZoiTxMiTAhZktkXGRL7JTaDl7d1kymMSiTHT69-3gVad9L_QWa91T87kZFhOEDO3oZj6rhHV4dmrWq79qnQ5nr93LGkb1hW9ZkfCxNnLHl0a6sXYJRP9ehNHiUN2KA_9DLSnXQFjxzXjjz9VruWnY6gnNPuZOrUclfgEA1Bzbg_dwIqpqdNymxes_gJZB60Sdlitx5m9PVEZkZmCGOjI7StnWHcRc8qOwyywkjGdDvgg8IEn9DmJZ6zfHux7GndqTF8dBdBHFTVORxYyd2SJj62EgtcnOJIbEca-63jRdE8nKyVIMI0yKHj1tmfPrAEusmVa5w9yU-Gqh9OTcOXWhTMEG3NXlvgWCbIY9bpYYa2cEZXbkhbFD-i1n7sOMHqDZz0Dri_6NAL7Zow0t2q9gIShawzjTo72mRUGq5YwL02H80ELDYVft9L-tDAKb5s6rzaq6WVnP9F0kqMo2e0w1jcxFXkSCdW8U5PRWBZETU1z-eZDV0_EgaalD_J6VC-bLIepaDl-mSQ_xC9oGadUvjvQb5FUOSxqVb7Rv1kK3rfbsu7N9E8e9ytSIrMHexjy5o61tBFLHOXao3w669YdUa10r2p73JednkAN8lVUlFXmpsP_bTzY-FIyfcsWePfabyhYriENurq9u-mXhLS43AEFoTbUHG8SP4zUyvHjlNjJ6-z7btd8GxNPuqs3ctdnO_oJdUdMDm29z_avg2jGiifD204z_8QXAY5Of0c28qYDMXbo_3aw_NigNyyZbDO99FNMveSoqlWqQZ_lmb3-jcRn8qBsYOxFvqzp0ljPfIgyRiz6JMOSSQYZDa1gqpWUuq_VCihdHFcJ1N7kwtyePZW07N1mS3PpMd3rxJdqsfOt36BL15mEKTOR9mFNjskx3OvRtZHfHsisj9ngN-rybXn8XnvrccqI_UC9QR_ydWeSr1s2jE6Nss_Ye-Qq-iw_JgM3ElkXS1B2OICa5N8kJSRFEs47jsL0GI6vCmTF3ECmArE37LE6ZPKOFDuhjaJIvqSFOE3rJupQnniFa8Mzw4k3uLUnJsDEYkiL6yS9__SP7lrL3neuGWO5GYBYXctZojvjhbJuHQgeqT1Tn7nSJwXZLm_0AR0MqY48TCEYmj_I81aCMZSPlqnjnv4eR_Du7mtGwduAntyERFsu8p2uUuvrAtSwzpWq3mcZ82zlGTvHngdpiYexdZae22loh_SsyZuCdec79wc0lTHaWmr6lW_U9aFPmsgja_KUFUVx3mQ5K-RRN0ThI0qkzofNXnoM76yti_O3H7NzfT_EZ_fniQdjygNLhmkQOjSN4zAOPYe4OLEtTPFZQWNWiPOZezEjpGKPSImA65m7PsvPiUWIFWIPvgPbWtiYEAcn2HOsOMmoP3MsVspDCxLHgtebs_pcQQKTCKgsYJ4UQyWoWp6gYao7kE9bsG99PvLJM9X9uYL_X_jJY1U">