From the LRM:
7.10.2.5 Pop_back()
The prototype of the pop_back() method is as follows:
function element_t pop_back();
The pop_back() method removes and returns the last element of the queue.
If this method is called on an empty queue:
— Its return value shall be the same as that obtained by attempting to read a nonexistent array element
of the same type as the queue’s elements (as described in Table 7-1 in 7.4.6);
— It shall have no effect on the queue and may cause a warning to be issued.
Based on the LRM, everything is working correctly. You may get a warning message, but a warning isn’t required.