ConocoPhillips posts smaller-than-expected loss as oil prices recover