History log of /external/llvm/include/llvm/ADT/Optional.h
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
36b56886974eae4f9c5ebc96befd3e7bfe5de338 24-Apr-2014 Stephen Hines <srhines@google.com> Update to LLVM 3.5a.

Change-Id: Ifadecab779f128e62e430c2b4f6ddd84953ed617
/external/llvm/include/llvm/ADT/Optional.h
7fe65d691dcce550d53ec9310913aab67ab6d654 27-Mar-2013 Rafael Espindola <rafael.espindola@gmail.com> Cleanup the simplify_type implementation.

As far as simplify_type is concerned, there are 3 kinds of smart pointers:

* const correct: A 'const MyPtr<int> &' produces a 'const int*'. A
'MyPtr<int> &' produces a 'int *'.
* always const: Even a 'MyPtr<int> &' produces a 'const int*'.
* no const: Even a 'const MyPtr<int> &' produces a 'int*'.

This patch then does the following:

* Removes the unused specializations. Since they are unused, it is hard
to know which kind should be implemented.
* Make sure we don't drop const.
* Fix the default forwarding so that const correct pointer only need
one specialization.
* Simplifies the existing specializations.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178147 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/ADT/Optional.h
70c808f5b7e1d9eaa3de872e162a25e956d4777e 22-Feb-2013 Benjamin Kramer <benny.kra@googlemail.com> An Optional<T> is pod-like if the inner type is.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175908 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/ADT/Optional.h
ea72255f5b0e8d92d5ae9feb5e92605d123888ca 21-Feb-2013 David Blaikie <dblaikie@gmail.com> Add move ctor/assignment to Optional<T>

Code review feedback for r175580 by Jordan Rose.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175729 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/ADT/Optional.h
2bbc19c1c6cd60b9c56750d7b03311c47a88b748 21-Feb-2013 David Blaikie <dblaikie@gmail.com> Make Optional<T>'s operator bool 'explicit' in C++11

Provides a general way to add 'explicit' for conversion operators (a no-op when
compiling as C++98).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175723 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/ADT/Optional.h
b8ebc9e2444c73126bdc812165f808f22af10cfa 21-Feb-2013 NAKAMURA Takumi <geek4civic@gmail.com> ADT/Optional.h: Appease msvc. It reapplies r175626.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175710 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/ADT/Optional.h
5c43245bf459c77077b607e1b55e6928cfbe464e 21-Feb-2013 David Blaikie <dblaikie@gmail.com> Provide a "None" value for convenience when using Optional<T>()

This implementation of NoneType/None does have some holes but I haven't
found one that doesn't - open to improvement.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175696 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/ADT/Optional.h
6139b55222851e9fabde5c91de9e50ed8739c6c6 20-Feb-2013 NAKAMURA Takumi <geek4civic@gmail.com> Revert r175626, "ADT/Optional.h: Appease msvc."

Sorry, I didn't cover +Asserts, by accident. :(

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175633 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/ADT/Optional.h
94e9d0d491f76aaab13f8bc7764ad73de11fa2bf 20-Feb-2013 NAKAMURA Takumi <geek4civic@gmail.com> Whitespace.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175627 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/ADT/Optional.h
767ad1c808c798191cf9470e7a0e546d3b472472 20-Feb-2013 NAKAMURA Takumi <geek4civic@gmail.com> ADT/Optional.h: Appease msvc.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175626 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/ADT/Optional.h
4318fc5e1e44f355ae117dcac385f1718d971e90 20-Feb-2013 David Blaikie <dblaikie@gmail.com> Rename llvm::Optional<T>::Reset to 'reset' as per LLVM naming conventions.

Code review feedback on r175580 from Jordan Rose.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175595 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/ADT/Optional.h
a28eda7e401f37a2fe42ca9bba96b6e662b60cf0 20-Feb-2013 David Blaikie <dblaikie@gmail.com> Allow llvm::Optional to work with types without default constructors.

This generalizes Optional to require less from the T type by using aligned
storage for backing & placement new/deleting the T into it when necessary.

Also includes unit tests.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175580 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/ADT/Optional.h
674be02d525d4e24bc6943ed9274958c580bcfbc 10-Jan-2013 Jakub Staszak <kubastaszak@gmail.com> Fix include guards so they exactly match file names.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172025 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/ADT/Optional.h
23203faf0b36c263248f5b265530c56974d93c98 02-Jan-2013 Argyrios Kyrtzidis <akyrtzi@gmail.com> Use a bool instead of a bitfield in llvm/ADT/Optional.

Fixes Valgrind failures and removes bitwise operations that don't provide any benefit.
Valgrind failures reported by NAKAMURA Takumi.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171413 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/ADT/Optional.h
4334dd96a9e622fdcf2825a8f73a2d941d67be72 30-Nov-2012 Chandler Carruth <chandlerc@gmail.com> Switch LLVM_USE_RVALUE_REFERENCES to LLVM_HAS_RVALUE_REFERENCES.

Rationale:
1) This was the name in the comment block. ;]
2) It matches Clang's __has_feature naming convention.
3) It matches other compiler-feature-test conventions.

Sorry for the noise. =]

I've also switch the comment block to use a \brief tag and not duplicate
the name.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168996 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/ADT/Optional.h
a5bf44b0b396e8b9ae0db5c62c05ac6618aab5d3 30-Nov-2012 Chandler Carruth <chandlerc@gmail.com> Separate out the tests for whether the compiler suports R-value
references from whether it supports an R-value reference *this. No
version of GCC today supports the latter, which breaks GCC C++11
compiles of LLVM and Clang now.

Also add doxygen comments clarifying what's going on here, and update
the usage in Optional. I'll update the usages in Clang next.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168993 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/ADT/Optional.h
adf0c3d82dbff1480c63f1ebe68c7c1e6bb5828c 30-Nov-2012 Jordan Rose <jordan_rose@apple.com> Add a new C++11 compatibility macro, LLVM_LVALUE_FUNCTION.

This expands to '&', and is intended to be used when an /optional/ rvalue
override is available.

Before:
void foo() const { ... }

After:
void foo() const LLVM_LVALUE_FUNCTION { ... }
void foo() && { ... }

This is used to allow moving the contents of an Optional.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168963 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/ADT/Optional.h
5ce10521a0986e9626530c19e3247431dbb5f2ca 19-Oct-2012 Jordan Rose <jordan_rose@apple.com> Fix case for include of Compiler.h.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166243 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/ADT/Optional.h
9d9a6128feb6e2251eb3bacdf2d1083a8b2f5b83 19-Oct-2012 Jordan Rose <jordan_rose@apple.com> Add a T&& constructor to llvm::Optional.

This allows llvm::Optional to be used with movable-but-not-copyable types.
While LLVM itself is still C++03, there's no reason why tools built on
top of it can't use C++11 features.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166241 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/ADT/Optional.h
78b9649d46c91f377cfc799aecb74cb017f72c36 11-Feb-2011 Douglas Gregor <dgregor@apple.com> Poison the relational operators ==, !=, <, <=, >=, > on llvm::Optional
objects, since they'll end up using the implicit conversion to "bool"
and causing some very "fun" surprises.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125380 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/ADT/Optional.h
76e94e541c867a1d61d9be6555d3c17cd09b3914 09-Apr-2010 Ted Kremenek <kremenek@apple.com> Move 'Optional' class from Clang to LLVM/ADT.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100889 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/ADT/Optional.h