Implicit conversion to function types is now a more standard part of the type conversion infrastructure, rather than special cases of things like FunctionSymbolExpr immediately returning a pointer type, etc. Improved AddressOfExpr::TypeCheck() to actually issue errors in cases where it's illegal to take the address of an expression. Added AddressOfExpr::GetConstant() implementation that handles taking the address of functions. Issue #223.
6 lines
92 B
Plaintext
6 lines
92 B
Plaintext
// Illegal to take address of non-lvalue or function
|
|
|
|
void foo() {
|
|
int *ptr = &(1+1);
|
|
}
|