I have done this in the past for libraries but not build tools, so i don't see why the following shouldn't work other then binary compatibility issues if you build any libraries. As vitalyster has pointed out this is not a ideal approach and you may run into issues but it is technically possible to do it this way.
The way that i have done this is include the package (in your case GCC) in my project and set it's build / use in build (under repositories) to only build for the architectures that don't have a new enough version.
I would also put BuildRequires: gcc >= 4.8
in your spec to ensure the newer version is picked up but that should not be necessary
A example can be found in https://build.opensuse.org/project/monitor/X11:Enlightenment:Factory the package luajit is only available in the openSUSE:Factory repository, so i have a copy in the repository that builds for everything but openSUSE:Factory which uses the one provided in the upstream repository.
In your repository you can branch existing package which means that you can find a version of gcc which is already available on obs and use that instead of creating your own.