VHDL process causes errors
In order of effort:


If you have access to VHDL 2008 in your tools, enable it.  If not, bug the vendor to support it!
add an extra signal calling c_sync and then add a line:

c_sync &lt;= c when rising_edge(clk);
Change your code to a set of if then statements.