There are three functions:
The main function, starting at PC 0 and ending at PC 7.
The first local function func1, starting at PC 5 and ending at PC 7.
The second local function func2, starting at PC 6 and ending at PC 7.
Is this valid? There doesn't appear to be anything in the ISA prohibiting it, but the Linux verifier rejects it.
My view:
From the ISA perspective, there is nothing against it.
It would be up to the psABI (which specifies calling conventions for function calls), and the implementation.
There are three functions: The main function, starting at PC 0 and ending at PC 7. The first local function func1, starting at PC 5 and ending at PC 7. The second local function func2, starting at PC 6 and ending at PC 7.
Is this valid? There doesn't appear to be anything in the ISA prohibiting it, but the Linux verifier rejects it.