From 7c1231cda08d23b1ffab0d5c0c3722a946a1bb91 Mon Sep 17 00:00:00 2001 From: Michael Beck Date: Wed, 20 Aug 2008 22:34:56 +0000 Subject: [PATCH] another brain damaged gcc extension [r21297] --- ir/be/test/asm_test3.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 ir/be/test/asm_test3.c diff --git a/ir/be/test/asm_test3.c b/ir/be/test/asm_test3.c new file mode 100644 index 000000000..697acc5cb --- /dev/null +++ b/ir/be/test/asm_test3.c @@ -0,0 +1,23 @@ +/* THIS IS WRONG, but gcc compiles it: (unsigned int)x is NO lvalue */ +#define udiv_qrnnd(q, r, n1, n0, dv) \ + __asm__ ("divl %4" \ + : "=a" ((unsigned int) (q)), \ + "=d" ((unsigned int) (r)) \ + : "0" ((unsigned int) (n0)), \ + "1" ((unsigned int) (n1)), \ + "rm" ((unsigned int) (dv))) + +unsigned int X; +unsigned test(void) { + unsigned int d0, n0, n1, q0; + + n1 = n0 = d0 = X; + + udiv_qrnnd (q0, n0, n1, n0, d0); + + return q0; +} + +int main(void) { + return 0; +} -- 2.20.1