// prototypes

void Func1(int x);
void Func2(int& x);
void Func3(const int& x);

-----------------------------------

// calls -- legal or illegal?
//  (pretend we're in "main()")

int y = 10;

Func1(5);
Func1(y);
Func1(y + 4);

Func2(5);
Func2(y);
Func2(y + 4);

Func3(5);
Func3(y);
Func3(y + 4);