On Thu, Aug 01, 2019 at 10:26:28PM +1000, Michael Ellerman wrote: > GCC 9 fails to build some of the ptrace TM tests, with errors such as: > > ptrace-tm-spd-vsx.c: In function 'tm_spd_vsx': > ptrace-tm-spd-vsx.c:51:2: error: listing the stack pointer register 'r1' in > a clobber list is deprecated [-Werror=deprecated] > 51 | asm __volatile__( > | ^~~ > ptrace-tm-spd-vsx.c:51:2: note: the value of the stack pointer after an > 'asm' statement must be the same as it was before the statement > > Which is probably fair enough.
Maybe you shouldn't build the tests with -Werror though? (And you could include the much more useful -Wextra while you're at it ;-) ). > Some of these inline asm blocks are doing quite a lot and are probably > pushing the boundaries of what's sane to do with inline asm, These are just testcases, you sometimes need to do evil things there. But yeah :-) > but they shouldn't actually be returning with r1 modified. But they *do* modify lr, and that one isnt't listed; I guess the r1 clobber was there because of the call in the asm, but that needs an lr clobber, instead. (Or it was because of the "or 1,1,1")? Segher