]> granicus.if.org Git - clang/commit
Sema: Variable definitions cannot be __attribute__((alias))
authorDavid Majnemer <david.majnemer@gmail.com>
Mon, 19 Jan 2015 09:00:28 +0000 (09:00 +0000)
committerDavid Majnemer <david.majnemer@gmail.com>
Mon, 19 Jan 2015 09:00:28 +0000 (09:00 +0000)
commit7e7e7a90a1de73287465ebdd61c97914713e81c7
tree088e1f7c758e8c677c558eaa3b4b7e56f7b76771
parent8d044b8ddc020046c80b6b1a1b25771f25fc66fd
Sema: Variable definitions cannot be __attribute__((alias))

Things that are OK:
  extern int var1 __attribute((alias("v1")));
  static int var2 __attribute((alias("v2")));

Things that are not OK:
  int var3 __attribute((alias("v3")));
  extern int var4 __attribute((alias("v4"))) = 4;

We choose to accpet:
  struct S { static int var5 __attribute((alias("v5"))); };

  This code causes assertion failues in GCC 4.8 and ICC 13.0.1, we have
  no reason to reject it.

This partially fixes PR22217.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@226436 91177308-0d34-0410-b5e6-96231b3b80d8
include/clang/Basic/Attr.td
include/clang/Basic/DiagnosticSemaKinds.td
lib/Sema/SemaDecl.cpp
lib/Sema/SemaDeclAttr.cpp
test/Misc/ast-dump-attr.cpp
test/Sema/alias-redefinition.c