
tools/gcmole/gcmole-test.cc:27:10: warning: Possibly dead variable.
  return obj;
         ^
tools/gcmole/gcmole-test.cc:45:3: warning: Possible problem with evaluation order.
  TwoArgumentsFunction(*CauseGC(obj1, isolate), *CauseGC(obj2, isolate));
  ^
tools/gcmole/gcmole-test.cc:57:3: warning: Possible problem with evaluation order.
  TwoSizeTArgumentsFunction(sizeof(*CauseGC(obj1, isolate)),
  ^
tools/gcmole/gcmole-test.cc:82:7: warning: Possible problem with evaluation order.
  so->Method(*CauseGC(obj1, isolate));
      ^
tools/gcmole/gcmole-test.cc:84:7: warning: Possible problem with evaluation order.
  so->Method(CauseGCRaw(*obj1, isolate));
      ^
tools/gcmole/gcmole-test.cc:128:14: warning: Possible problem with evaluation order.
  so_handle->Method(*derived.VirtualCauseGC(obj1, isolate));
             ^
tools/gcmole/gcmole-test.cc:130:14: warning: Possible problem with evaluation order.
  so_handle->Method(*base->VirtualCauseGC(obj1, isolate));
             ^
tools/gcmole/gcmole-test.cc:151:14: warning: Possible problem with evaluation order.
  so_handle->Method(*SomeClass::StaticCauseGC(obj1, isolate));
             ^
tools/gcmole/gcmole-test.cc:161:3: warning: Possibly dead variable.
  raw_obj.Print();
  ^
tools/gcmole/gcmole-test.cc:193:3: warning: Possibly dead variable.
  raw_obj.Print();
  ^
tools/gcmole/gcmole-test.cc:216:3: warning: Possibly dead variable.
  raw_obj.Print();
  ^
11 warnings generated.
