dkonigsberg

GCC enum comparison

Jun 1st, 2023
249
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.32 KB | None | 0 0
  1. ---- Source ----
  2. #include <stdio.h>
  3.  
  4. enum test {
  5. T1 = 0,
  6. T2 = 1
  7. };
  8.  
  9. int main() {
  10. enum test tvar = T1;
  11. enum test tneg = -1;
  12.  
  13. if (tneg > tvar) {
  14. printf("tneg greater than tvar, got %d and %d\n", tneg, tvar);
  15. } else {
  16. printf("tneg less than tvar, got %d and %d\n", tneg, tvar);
  17. }
  18. return 0;
  19. }
  20.  
  21. ---- ARM GCC 10.3.0 -O ----
  22.  
  23. .LC0:
  24. .ascii "tneg greater than tvar, got %d and %d\012\000"
  25. main:
  26. push {r3, lr}
  27. movs r2, #0
  28. mov r1, #-1
  29. movw r0, #:lower16:.LC0
  30. movt r0, #:upper16:.LC0
  31. bl printf
  32. movs r0, #0
  33. pop {r3, pc}
  34.  
  35. ---- ARM GCC 10.3.1 -O ----
  36.  
  37. .LC0:
  38. .ascii "tneg greater than tvar, got %d and %d\012\000"
  39. main:
  40. push {r4, lr}
  41. mov r2, #0
  42. mov r1, #255
  43. ldr r0, .L3
  44. bl printf
  45. mov r0, #0
  46. pop {r4, lr}
  47. bx lr
  48. .L3:
  49. .word .LC0
  50.  
  51. ---- ARM GCC 11.1.0 -O ----
  52. .LC0:
  53. .ascii "tneg greater than tvar, got %d and %d\012\000"
  54. main:
  55. push {r3, lr}
  56. movs r2, #0
  57. mov r1, #-1
  58. movw r0, #:lower16:.LC0
  59. movt r0, #:upper16:.LC0
  60. bl printf
  61. movs r0, #0
  62. pop {r3, pc}
  63.  
Advertisement
Add Comment
Please, Sign In to add comment