Shared variables and protected types are meant for testbenching, not synthesis. Protected types were introduced in VHDL 2002.
Origionally shared variables were meant for direct data transfer between processes. They were declared like a signal but worked like a variable. The problem with this is that because they are updated immediatly, they are not safe. Hence the protected types (though to be honest, you really have the same problems).
Shared variables (of the old type) can be used to model the correct write-before-read behaviour when implying a dual clocked memory, but quartus doesnt actually create the correct altsync ram (Xilinx does though).
Basically - keep shared variables and protected types away from quartus - keep them in your favourite simulator.