MATL, 13 12 bytes
|stE:-GyZQ~)
This uses the fact that, for integer coefficients, the absolute value of any root is strictly less than the sum of absolute values of the coefficients.
###Explanation
Explanation
Consider input [1 5 6]
as an example.
| % Implicit input. Absolute value
% STACK: [1 5 6]
s % Sum
% STACK: 12
t % Duplicate
% STACK: 12, 12
E % Multiply by 2
% STACK: 12, 24
: % Range
% STACK: 12, [1 2 ... 23 24]
- % Subtract, elemet-wise
% STACK: [11 10 ... -11 -12]
G % Push input again
% STACK: [11 10 ... -11 -12], [1 5 6]
y % Duplicate from below
% STACK: [11 10 ... -11 -12], [1 5 6], [11 10 ... -11 -12]
ZQ % Polyval: values of polynomial at specified inputs
% STACK: [11 10 ... -11 -12], [182 156 ... 72 90]
~ % Logical negation: turns nonzero into zero
% STACK: [11 10 ... -11 -12], [0 0 ... 0] (contains 1 for roots)
) % Index: uses second input as a mask for the first. Implicit display
% STACK: [-3 -2]