No witness called by the Commonwealth or by the court, giving evidence either before the grand jury or in any prosecution under this article, shall ever be prosecuted for the offense being prosecuted concerning which he testifies. Such witness shall be compelled to testify and for refusing to do so may be punished for contempt.
Va. Code § 18.2-337