Unassigned outputs in Process blocks
A common mistake in writing a combinational process is to leave an output unassigned. If there is a path through the process in which an output is NOT assigned a value, then that value is unassigned.
ARCHITECTURE bad of majority is
if (((A = '1') and (B = '1')) or
((A = '1') and (C = '1')) or
((B = '1') and (C = '1')) ) then