[PATCH] D105169: [Clang/Test]: Rename enable_noundef_analysis to disable-noundef-analysis and turn it off by default

Juneyoung Lee via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Mon Nov 1 20:53:09 PDT 2021


aqjune added a comment.

I am not familiar with inline assembly, but it seems the output variable (`%0`) is not updated because it does not appear in the code.

  1382   __asm__ __volatile__(
  1383                        "mov x0,x2\n" /* flags  */
  1384                        "mov x2,x4\n" /* ptid  */
  1385                        "mov x3,x5\n" /* tls  */
  1386                        "mov x4,x6\n" /* ctid  */
  1387                        "mov x8,%9\n" /* clone  */
  1388 
  1389                        "svc 0x0\n"
  1390 
  1391                        /* if (%r0 != 0)
  1392                         *   return %r0;
  1393                         */
  1394                        "cmp x0, #0\n"
  1395                        "bne 1f\n"
  1396 
  1397                        /* In the child, now. Call "fn(arg)". */
  1398                        "ldp x1, x0, [sp], #16\n"
  1399                        "blr x1\n"
  1400 
  1401                        /* Call _exit(%r0).  */
  1402                        "mov x8, %10\n"
  1403                        "svc 0x0\n"
  1404                      "1:\n"
  1405 
  1406                        : "=r" (res)
  1407                        : "i"(-EINVAL),
  1408                          "r"(__fn), "r"(__stack), "r"(__flags), "r"(__arg),
  1409                          "r"(__ptid), "r"(__tls), "r"(__ctid),
  1410                          "i"(__NR_clone), "i"(__NR_exit)
  1411                        : "x30", "memory");

Should `%0` be updated?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D105169/new/

https://reviews.llvm.org/D105169



More information about the cfe-commits mailing list