https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95671

Martin Liška <marxin at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|WAITING                     |NEW

--- Comment #8 from Martin Liška <marxin at gcc dot gnu.org> ---
I've got a reduced test-case:

$ cat lbr.i
int a, c, d;
long b;

void
fn1() {
  for (; c; c++) {
    int e, f = 0;
    if (a) {
      e = !(d & 1ULL << 63);
      f = e;
    }
    d = fn1;
    b = f;
  }
}

$ gcc lbr.i -c -O2 -march=bdver2 -c &&
~/Programming/linux/tools/objtool/objtool check --uaccess lbr.o
lbr.i: In function ‘fn1’:
lbr.i:12:7: warning: assignment to ‘int’ from ‘void (*)()’ makes integer from
pointer without a cast [-Wint-conversion]
   12 |     d = fn1;
      |       ^
lbr.o: warning: objtool: fn1()+0x26: can't find jump dest instruction at
.text+0x36

disassembly:
  26:   74 0e                   je     36 <fn1+0x36>
  28:   48 0f ba fa 1f          btc    $0x1f,%rdx
  2d:   8f ea f8 10 ca 1f 01    bextr  $0x11f,%rdx,%rcx
  34:   00 00 
  36:   ff c0                   inc    %eax

It seems to me bextr is not supported (parsed) by objtool?

Reply via email to