PR1963: Address of function is a constant expression

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49212 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Seo Sanghyeon 2008-04-04 09:45:30 +00:00
Родитель 730f2c13e8
Коммит 63f067f5a7
2 изменённых файлов: 5 добавлений и 0 удалений

Просмотреть файл

@ -453,6 +453,8 @@ bool Expr::hasGlobalStorage() const {
const Decl *D = cast<DeclRefExpr>(this)->getDecl(); const Decl *D = cast<DeclRefExpr>(this)->getDecl();
if (const VarDecl *VD = dyn_cast<VarDecl>(D)) if (const VarDecl *VD = dyn_cast<VarDecl>(D))
return VD->hasGlobalStorage(); return VD->hasGlobalStorage();
if (isa<FunctionDecl>(D))
return true;
return false; return false;
} }
case MemberExprClass: { case MemberExprClass: {

Просмотреть файл

@ -5,3 +5,6 @@ int a[] = {0};
struct { int i; } s; struct { int i; } s;
int *array[] = {&i, a, &s.i}; int *array[] = {&i, a, &s.i};
extern void f(void);
void (*f_addr)(void) = &f;