mach8.cocci 561 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. @mr exists@
  2. typedef Mach; // only needed once per semantic patch
  3. idexpression Mach *m;
  4. function f;
  5. position p;
  6. identifier d;
  7. @@
  8. f@p(...){
  9. <+...
  10. m->d
  11. ...+>
  12. }
  13. @@
  14. function mr.f;
  15. position mr.p;
  16. @@
  17. f@p(...) {
  18. ++ Mach *m = machp();
  19. ...
  20. }
  21. @r exists@
  22. function f;
  23. position p;
  24. @@
  25. f@p(...){
  26. <+...
  27. if (waserror()) {...}
  28. ...+>
  29. }
  30. @@
  31. function r.f;
  32. position r.p;
  33. @@
  34. f@p(...) {
  35. ++ Mach *m = machp();
  36. ...
  37. }
  38. @nr exists@
  39. function f;
  40. position p;
  41. @@
  42. f@p(...){
  43. <+...
  44. if (!waserror()) {...}
  45. ...+>
  46. }
  47. @@
  48. function nr.f;
  49. position nr.p;
  50. @@
  51. f@p(...) {
  52. ++ Mach *m = machp();
  53. ...
  54. }