private bool Merge(VariabilityInfo a, VariabilityInfo b, out VariabilityInfo m)
 {
     m = VariabilityInfo.MergeDefs(a, b);
     if (m.Variability == EVariability.Constant && m.Definitions.Count() > 1)
     {
         IEnumerable <int> lcas  = CFG.GetLCASet(m.Definitions);
         IEnumerable <int> inter = m.Definitions.Intersect(lcas);
         if (inter.Any())
         {
             m = new VariabilityInfo(EVariability.LocalVariable, m.Definitions);
         }
         else
         {
             m = new VariabilityInfo(
                 lcas.All(i => _stackStates[i].HasUniqueSuccessor()) ?
                 EVariability.Constant : EVariability.LocalVariable,
                 m.Definitions);
         }
     }
     return(!a.Equals(m));
 }