An apparatus, comprising: a set of bounded pointer storage elements, each bounded pointer storage element to store a pointer indicating an address and associated range information specifying an allowable range of addresses when using said pointer; a set of data registers, physically separate to the set of bounded pointer storage elements, to store data values; processing circuitry to execute a sequence of instructions; and a control storage element to store a current instruction context; the processing circuitry being responsive to execution of at least one instruction in said sequence that specifies a pointer reference for a required pointer, where the pointer reference is within at least a first subset of values, to identify the required pointer dependent on the current instruction context; and the processing circuitry being responsive to execution of the at least one instruction: - to use the pointer reference to identify one of the data registers whose stored data value forms the required pointer, when the current instruction context identifies a default state; - to use the pointer reference to identify one of the bounded pointer storage elements whose stored pointer forms the required pointer, when the current instruction context identifies a bounded pointer state; - to determine a required address from the required pointer; - when the current instruction context identifies the bounded pointer state, to perform a bound check operation to check that the determined required address is within the allowable range of addresses indicated by the associated range information for said one of the bounded pointer storage elements; and - when the current instruction context identifies the default state, to perform a default bound check operation to check that the determined required address is within a default allowable range of addresses. a set of bounded pointer storage elements, each bounded pointer storage element to store a pointer indicating an address and associated range information specifying an allowable range of addresses when using said pointer; a set of data registers, physically separate to the set of bounded pointer storage elements, to store data values; processing circuitry to execute a sequence of instructions; and a control storage element to store a current instruction context; the processing circuitry being responsive to execution of at least one instruction in said sequence that specifies a pointer reference for a required pointer, where the pointer reference is within at least a first subset of values, to identify the required pointer dependent on the current instruction context; and the processing circuitry being responsive to execution of the at least one instruction: - to use the pointer reference to identify one of the data registers whose stored data value forms the required pointer, when the current instruction context identifies a default state; - to use the pointer reference to identify one of the bounded pointer storage elements whose stored pointer forms the required pointer, when the current instruction context identifies a bounded pointer state; - to determine a required address from the required pointer; - when the current instruction context identifies the bounded pointer state, to perform a bound check operation to check that the determined required address is within the allowable range of addresses indicated by the associated range information for said one of the bounded pointer storage elements; and - when the current instruction context identifies the default state, to perform a default bound check operation to check that the determined required address is within a default allowable range of addresses. - to use the pointer reference to identify one of the data registers whose stored data value forms the required pointer, when the current instruction context identifies a default state; - to use the pointer reference to identify one of the bounded pointer storage elements whose stored pointer forms the required pointer, when the current instruction context identifies a bounded pointer state; - to determine a required address from the required pointer; - when the current instruction context identifies the bounded pointer state, to perform a bound check operation to check that the determined required address is within the allowable range of addresses indicated by the associated range information for said one of the bounded pointer storage elements; and - when the current instruction context identifies the default state, to perform a default bound check operation to check that the determined required address is within a default allowable range of addresses.