This is a little joke.
C ++ has the ability to mark identifiers using a C-link, which usually simply means that there is no control over the names of functions with the same name, but with a different parameter signature, since until recently C had no notion of overload 1 .
As you indicate this binding, the environment of identifiers is:
extern "C" { whatever ... }
Now BCPL is a language that even C prescribes (it is actually part of the C line), and its โbindingโ (due to the lack of a better word) was just an address table called a global vector.
The author of this document you are referring to was just humorous, CLang does not actually provide extern "BCPL" stuff. You will also notice that the current version of LLVM is 3.2 s 3.3, non-repayable until June of this year. Another indication that the author invited us, with a comment by LLVM 3.8.
Since the purpose of this proposal was simply to show how annotations work (inside [] ), the rest of the text was largely irrelevant.
1 With the introduction of type expressions in C11, it now has a kind of overload, although it is executed at compile time rather than run time.
source share