uniform float frag_LightAttenuation;
is a float
shader->setUniform("frag_LightAttenuation",100);
is attempting to set an int. (You can tell from the error by looking up
glUniform1i())
You probably want
shader->setUniform("frag_LightAttenuation",100.f);
It pays to be specific with your constants, instead of relying on implicit conversion. In this case it's not being converted because an overload for setUniform() is available for integers.
Also as a side note: there's no reason to 'new' your shader, especially as you don't even delete it. Place it on the stack with your other resources and it'll be fine.