Bug 202596

Summary: Fix pessimizing moves in devel/llvm36, for the benefit of other ports
Product: Ports & Packages Reporter: Dimitry Andric <dim>
Component: Individual Port(s)Assignee: Brooks Davis <brooks>
Status: Closed FIXED    
Severity: Affects Some People CC: brooks
Priority: ---    
Version: Latest   
Hardware: Any   
OS: Any   
Bug Depends on:    
Bug Blocks: 201377    
Attachments:
Description Flags
Fix pessimizing moves in devel/llvm36 none

Description Dimitry Andric freebsd_committer freebsd_triage 2015-08-23 16:40:33 UTC
Created attachment 160255 [details]
Fix pessimizing moves in devel/llvm36

During the exp-run in bug 201377, it was found that lang/rust and lang/rust-devel give errors with a recent clang 3.7.0 snapshot:

http://package18.nyi.freebsd.org/data/headamd64PR201377-default/2015-07-31_13h29m42s/logs/errors/rust-1.1.0.log
http://package18.nyi.freebsd.org/data/headamd64PR201377-default/2015-07-31_13h29m42s/logs/errors/rust-nightly-1.3.0.20150703.log

This is because the ports include headers from the devel/llvm36 port, and some of these headers contain std::move() calls to temporary objects, which is a pessimization.

Upstream llvm has removed the std::move() calls here:
http://llvm.org/viewvc/llvm-project?view=revision&revision=236316

but since the external headers matter for other ports, I've patched only those.
Comment 1 commit-hook freebsd_committer freebsd_triage 2015-08-25 23:09:03 UTC
A commit references this bug:

Author: brooks
Date: Tue Aug 25 23:08:53 UTC 2015
New revision: 395325
URL: https://svnweb.freebsd.org/changeset/ports/395325

Log:
  Fix pessimizing moves in devel/llvm36, for the benefit of other ports

  PR:		202596
  Submitted by:	dim

Changes:
  head/devel/llvm36/Makefile
  head/devel/llvm36/files/patch-include__llvm__ADT__APFloat.h
  head/devel/llvm36/files/patch-include__llvm__IR__PassManager.h