 FAIR: After the shotgun fight in the hospital, Constantine does run  out of ammo and is saved by Chas, but in the next scene he moves  toward the pool while continuing to aim the shotgun before he  finally throws it into the water. Since theres an indeterminate  amount of time in between these two scenes, and Constantine knew  hed run out of ammo, its most likely he reloaded the shotgun off  camera before moving toward the pool, thereby leaving the shotgun  fully loaded when Gabriel later hands it to him.