forked from OSchip/llvm-project
Fix PR8720 by printing an error message with a substring that the gcc testsuite searches for.
llvm-svn: 121137
This commit is contained in:
parent
d2f4b09e10
commit
0017c5fa92
|
@ -1001,6 +1001,8 @@ def err_attribute_weakref_not_global_context : Error<
|
|||
"weakref declaration of '%0' must be in a global context">;
|
||||
def err_attribute_weakref_without_alias : Error<
|
||||
"weakref declaration of '%0' must also have an alias attribute">;
|
||||
def err_alias_not_supported_on_darwin : Error <
|
||||
"only weak aliases are supported on darwin">;
|
||||
def warn_attribute_wrong_decl_type : Warning<
|
||||
"%0 attribute only applies to %select{function|union|"
|
||||
"variable and function|function or method|parameter|"
|
||||
|
|
|
@ -675,6 +675,11 @@ static void HandleAliasAttr(Decl *d, const AttributeList &Attr, Sema &S) {
|
|||
return;
|
||||
}
|
||||
|
||||
if (S.Context.Target.getTriple().getOS() == llvm::Triple::Darwin) {
|
||||
S.Diag(Attr.getLoc(), diag::err_alias_not_supported_on_darwin);
|
||||
return;
|
||||
}
|
||||
|
||||
// FIXME: check if target symbol exists in current file
|
||||
|
||||
d->addAttr(::new (S.Context) AliasAttr(Attr.getLoc(), S.Context,
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// RUN: %clang_cc1 -emit-llvm -o - %s | FileCheck %s
|
||||
// RUN: %clang_cc1 -triple x86_64-pc-linux-gnu -emit-llvm -o - %s | FileCheck %s
|
||||
|
||||
int x() { return 1; }
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// RUN: %clang_cc1 -emit-llvm %s -o - -verify | FileCheck %s
|
||||
// RUN: %clang_cc1 -triple x86_64-pc-linux-gnu -emit-llvm %s -o - -verify | FileCheck %s
|
||||
|
||||
// CHECK: @weakvar = weak global
|
||||
// CHECK: @__weakvar_alias = common global
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// RUN: %clang_cc1 -triple x86_64-apple-darwin -emit-llvm -o - %s | FileCheck %s
|
||||
// RUN: %clang_cc1 -triple x86_64-pc-linux-gnu -emit-llvm -o - %s | FileCheck %s
|
||||
|
||||
// CHECK: @test2 = alias i32 ()* @_Z5test1v
|
||||
|
||||
|
|
|
@ -0,0 +1,8 @@
|
|||
// RUN: %clang_cc1 -triple x86_64-apple-darwin -fsyntax-only -verify %s
|
||||
|
||||
void g() {}
|
||||
|
||||
// It is important that the following string be in the error message. The gcc
|
||||
// testsuite looks for it to decide if a target supports aliases.
|
||||
|
||||
void f() __attribute__((alias("g"))); //expected-error {{only weak aliases are supported}}
|
|
@ -1,4 +1,4 @@
|
|||
// RUN: %clang_cc1 -fsyntax-only -verify %s
|
||||
// RUN: %clang_cc1 -triple x86_64-pc-linux-gnu -fsyntax-only -verify %s
|
||||
|
||||
// GCC will accept anything as the argument of weakref. Should we
|
||||
// check for an existing decl?
|
||||
|
|
Loading…
Reference in New Issue