There's an annoying "feature" of RPG where RPG will automatically define
the basing pointer used in the BASED keyword, if the pointer is not
already defined. At least, I find it annoying.
If you use the BASED keyword in a subprocedure and code a global pointer
as the parameter, RPG will "helpfully" define the pointer locally. So
even though you think you have only defined the pointer once, the
compile listing will show that it is actually defined twice.