[PATCH] D14601: AsmPrinter: Fix wrong OS X versions being emitted for darwin triples

Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Jan 12 17:22:07 PST 2016


This revision was automatically updated to reflect the committed changes.
Closed by commit rL257555: AsmPrinter: Fix wrong OS X versions being emitted for darwin triples (authored by matze).

Changed prior to commit:
  http://reviews.llvm.org/D14601?vs=39998&id=44698#toc

Repository:
  rL LLVM

http://reviews.llvm.org/D14601

Files:
  llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
  llvm/trunk/test/CodeGen/X86/2008-11-03-F80VAARG.ll
  llvm/trunk/test/CodeGen/X86/version_directive.ll

Index: llvm/trunk/test/CodeGen/X86/2008-11-03-F80VAARG.ll
===================================================================
--- llvm/trunk/test/CodeGen/X86/2008-11-03-F80VAARG.ll
+++ llvm/trunk/test/CodeGen/X86/2008-11-03-F80VAARG.ll
@@ -1,11 +1,13 @@
-; RUN: llc < %s -march=x86 -o - | not grep 10
+; RUN: llc < %s -march=x86 -o - | FileCheck %s
 
 declare void @llvm.va_start(i8*) nounwind
 
 declare void @llvm.va_copy(i8*, i8*) nounwind
 
 declare void @llvm.va_end(i8*) nounwind
 
+; CHECK-LABEL: test:
+; CHECK-NOT: 10
 define x86_fp80 @test(...) nounwind {
 	%ap = alloca i8*		; <i8**> [#uses=3]
 	%v1 = bitcast i8** %ap to i8*		; <i8*> [#uses=1]
Index: llvm/trunk/test/CodeGen/X86/version_directive.ll
===================================================================
--- llvm/trunk/test/CodeGen/X86/version_directive.ll
+++ llvm/trunk/test/CodeGen/X86/version_directive.ll
@@ -0,0 +1,4 @@
+; RUN: llc -mtriple x86_64-apple-darwin15.0.0 -o - /dev/null | FileCheck %s
+; RUN: llc -mtriple x86_64-apple-macosx10.11.0 -o - /dev/null | FileCheck %s
+
+; CHECK: .macosx_version_min 10, 11
Index: llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
===================================================================
--- llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
+++ llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
@@ -192,22 +192,26 @@
   // use the directive, where it would need the same conditionalization
   // anyway.
   Triple TT(getTargetTriple());
-  if (TT.isOSDarwin()) {
+  // If there is a version specified, Major will be non-zero.
+  if (TT.isOSDarwin() && TT.getOSMajorVersion() != 0) {
     unsigned Major, Minor, Update;
-    TT.getOSVersion(Major, Minor, Update);
-    // If there is a version specified, Major will be non-zero.
-    if (Major) {
-      MCVersionMinType VersionType;
-      if (TT.isWatchOS())
-        VersionType = MCVM_WatchOSVersionMin;
-      else if (TT.isTvOS())
-        VersionType = MCVM_TvOSVersionMin;
-      else if (TT.isMacOSX())
-        VersionType = MCVM_OSXVersionMin;
-      else
-        VersionType = MCVM_IOSVersionMin;
-      OutStreamer->EmitVersionMin(VersionType, Major, Minor, Update);
+    MCVersionMinType VersionType;
+    if (TT.isWatchOS()) {
+      VersionType = MCVM_WatchOSVersionMin;
+      TT.getWatchOSVersion(Major, Minor, Update);
+    } else if (TT.isTvOS()) {
+      VersionType = MCVM_TvOSVersionMin;
+      TT.getiOSVersion(Major, Minor, Update);
+    } else if (TT.isMacOSX()) {
+      VersionType = MCVM_OSXVersionMin;
+      if (!TT.getMacOSXVersion(Major, Minor, Update))
+        Major = 0;
+    } else {
+      VersionType = MCVM_IOSVersionMin;
+      TT.getiOSVersion(Major, Minor, Update);
     }
+    if (Major != 0)
+      OutStreamer->EmitVersionMin(VersionType, Major, Minor, Update);
   }
 
   // Allow the target to emit any magic that it wants at the start of the file.


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D14601.44698.patch
Type: text/x-patch
Size: 2877 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160113/56e7ebce/attachment.bin>


More information about the llvm-commits mailing list