Initial import
[external/libunwind.git] / packaging / dwarf_order.patch
1 From 679b65cd221efa7df42b6a369c7b1ebe9d8b5c3e Mon Sep 17 00:00:00 2001
2 From: Chris January <chris.january@allinea.com>
3 Date: Thu, 31 Jan 2013 11:46:57 +0000
4 Subject: [PATCH] dwarf: Fix the order of the operands to the relational operators
5
6 dwarf_eval_expr are reversed compared with the DWARF spec.
7 ---
8  src/dwarf/Gexpr.c |   12 ++++++------
9  1 files changed, 6 insertions(+), 6 deletions(-)
10
11 diff --git a/src/dwarf/Gexpr.c b/src/dwarf/Gexpr.c
12 index b4f2bc9..502021c 100644
13 --- a/src/dwarf/Gexpr.c
14 +++ b/src/dwarf/Gexpr.c
15 @@ -574,42 +574,42 @@ do {                                              \
16           Debug (15, "OP_le\n");
17           tmp1 = pop ();
18           tmp2 = pop ();
19 -         push (sword (as, tmp1) <= sword (as, tmp2));
20 +         push (sword (as, tmp2) <= sword (as, tmp1));
21           break;
22  
23         case DW_OP_ge:
24           Debug (15, "OP_ge\n");
25           tmp1 = pop ();
26           tmp2 = pop ();
27 -         push (sword (as, tmp1) >= sword (as, tmp2));
28 +         push (sword (as, tmp2) >= sword (as, tmp1));
29           break;
30  
31         case DW_OP_eq:
32           Debug (15, "OP_eq\n");
33           tmp1 = pop ();
34           tmp2 = pop ();
35 -         push (sword (as, tmp1) == sword (as, tmp2));
36 +         push (sword (as, tmp2) == sword (as, tmp1));
37           break;
38  
39         case DW_OP_lt:
40           Debug (15, "OP_lt\n");
41           tmp1 = pop ();
42           tmp2 = pop ();
43 -         push (sword (as, tmp1) < sword (as, tmp2));
44 +         push (sword (as, tmp2) < sword (as, tmp1));
45           break;
46  
47         case DW_OP_gt:
48           Debug (15, "OP_gt\n");
49           tmp1 = pop ();
50           tmp2 = pop ();
51 -         push (sword (as, tmp1) > sword (as, tmp2));
52 +         push (sword (as, tmp2) > sword (as, tmp1));
53           break;
54  
55         case DW_OP_ne:
56           Debug (15, "OP_ne\n");
57           tmp1 = pop ();
58           tmp2 = pop ();
59 -         push (sword (as, tmp1) != sword (as, tmp2));
60 +         push (sword (as, tmp2) != sword (as, tmp1));
61           break;
62  
63         case DW_OP_skip:
64 -- 
65 1.7.2.5
66