[llvm] r205681 - AsmParser: add a warning for compatibility parsing
Saleem Abdulrasool
compnerd at compnerd.org
Sat Apr 5 15:42:53 PDT 2014
Author: compnerd
Date: Sat Apr 5 17:42:53 2014
New Revision: 205681
URL: http://llvm.org/viewvc/llvm-project?rev=205681&view=rev
Log:
AsmParser: add a warning for compatibility parsing
This adds a warning when linker_private or linker_private_weak is provided and
we handle it in a compatible manner.
Suggested by Chris Lattner!
Modified:
llvm/trunk/lib/AsmParser/LLLexer.cpp
llvm/trunk/lib/AsmParser/LLLexer.h
llvm/trunk/lib/AsmParser/LLParser.cpp
llvm/trunk/test/Bitcode/deprecated-linker_private-linker_private_weak.ll
Modified: llvm/trunk/lib/AsmParser/LLLexer.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/AsmParser/LLLexer.cpp?rev=205681&r1=205680&r2=205681&view=diff
==============================================================================
--- llvm/trunk/lib/AsmParser/LLLexer.cpp (original)
+++ llvm/trunk/lib/AsmParser/LLLexer.cpp Sat Apr 5 17:42:53 2014
@@ -34,6 +34,10 @@ bool LLLexer::Error(LocTy ErrorLoc, cons
return true;
}
+void LLLexer::Warning(LocTy WarningLoc, const Twine &Msg) const {
+ SM.PrintMessage(WarningLoc, SourceMgr::DK_Warning, Msg);
+}
+
//===----------------------------------------------------------------------===//
// Helper functions.
//===----------------------------------------------------------------------===//
Modified: llvm/trunk/lib/AsmParser/LLLexer.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/AsmParser/LLLexer.h?rev=205681&r1=205680&r2=205681&view=diff
==============================================================================
--- llvm/trunk/lib/AsmParser/LLLexer.h (original)
+++ llvm/trunk/lib/AsmParser/LLLexer.h Sat Apr 5 17:42:53 2014
@@ -63,6 +63,10 @@ namespace llvm {
bool Error(LocTy L, const Twine &Msg) const;
bool Error(const Twine &Msg) const { return Error(getLoc(), Msg); }
+
+ void Warning(LocTy WarningLoc, const Twine &Msg) const;
+ void Warning(const Twine &Msg) const { return Warning(getLoc(), Msg); }
+
std::string getFilename() const;
private:
Modified: llvm/trunk/lib/AsmParser/LLParser.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/AsmParser/LLParser.cpp?rev=205681&r1=205680&r2=205681&view=diff
==============================================================================
--- llvm/trunk/lib/AsmParser/LLParser.cpp (original)
+++ llvm/trunk/lib/AsmParser/LLParser.cpp Sat Apr 5 17:42:53 2014
@@ -1312,6 +1312,8 @@ bool LLParser::ParseOptionalLinkage(unsi
case lltok::kw_linker_private:
case lltok::kw_linker_private_weak:
+ Lex.Warning("'" + Lex.getStrVal() + "' is deprecated, treating as"
+ " PrivateLinkage");
Lex.Lex();
// treat linker_private and linker_private_weak as PrivateLinkage
Res = GlobalValue::PrivateLinkage;
Modified: llvm/trunk/test/Bitcode/deprecated-linker_private-linker_private_weak.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Bitcode/deprecated-linker_private-linker_private_weak.ll?rev=205681&r1=205680&r2=205681&view=diff
==============================================================================
--- llvm/trunk/test/Bitcode/deprecated-linker_private-linker_private_weak.ll (original)
+++ llvm/trunk/test/Bitcode/deprecated-linker_private-linker_private_weak.ll Sat Apr 5 17:42:53 2014
@@ -1,4 +1,5 @@
; RUN: llvm-as -o - %s | llvm-dis | FileCheck %s
+; RUN: llvm-as -o /dev/null %s 2>&1 | FileCheck %s -check-prefix CHECK-WARNINGS
@.linker_private = linker_private unnamed_addr constant [15 x i8] c"linker_private\00", align 64
@.linker_private_weak = linker_private_weak unnamed_addr constant [20 x i8] c"linker_private_weak\00", align 64
@@ -6,3 +7,11 @@
; CHECK: @.linker_private = private unnamed_addr constant [15 x i8] c"linker_private\00", align 64
; CHECK: @.linker_private_weak = private unnamed_addr constant [20 x i8] c"linker_private_weak\00", align 64
+; CHECK-WARNINGS: warning: '.linker_private' is deprecated, treating as PrivateLinkage
+; CHECK-WARNINGS: @.linker_private = linker_private unnamed_addr constant [15 x i8] c"linker_private\00", align 64
+; CHECK-WARNINGS: ^
+
+; CHECK-WARNINGS: warning: '.linker_private_weak' is deprecated, treating as PrivateLinkage
+; CHECK-WARNINGS: @.linker_private_weak = linker_private_weak unnamed_addr constant [20 x i8] c"linker_private_weak\00", align 64
+; CHECK-WARNINGS: ^
+
More information about the llvm-commits
mailing list