+
+ // GC poses two hazards to inlining, which only occur when the callee has GC:
+ // 1. If the caller has no GC, then the callee's GC must be propagated to the
+ // caller.
+ // 2. If the caller has a differing GC, it is invalid to inline.
+ if (CalledFunc->hasCollector()) {
+ if (!Caller->hasCollector())
+ Caller->setCollector(CalledFunc->getCollector());
+ else if (CalledFunc->getCollector() != Caller->getCollector())
+ return false;
+ }
+
+