1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-31 16:02:52 +01:00
Commit Graph

13 Commits

Author SHA1 Message Date
Rafael Espindola
9e2da8f46a Fix a regression I introduced back in r178147.
We don't want cast and dyn_cast to work on temporaries. They don't extend
lifetime like a direct bind to a reference would, so they can introduce
hard to find bugs.

I added tests to make sure we don't regress this. Thanks to Eli Friedman for
noticing this and for his suggestions on how to test it.

llvm-svn: 186559
2013-07-18 02:42:40 +00:00
Chandler Carruth
f413c260cc Sort the #include lines for unittest/...
llvm-svn: 169250
2012-12-04 10:23:08 +00:00
Sean Silva
356281d8ad Casting.h: Automatically handle isa<Base>(Derived).
Additionally, all such cases are handled with no dynamic check.

All `classof()` of the form

    class Foo {
      [...]
      static bool classof(const Bar *) { return true; }
      [...]
    }

where Foo is an ancestor of Bar are no longer necessary.
Don't write them!

Note: The exact test is `is_base_of<Foo, Bar>`, which is non-strict, so
that Foo is considered an ancestor of itself.

This leads to the following rule of thumb for LLVM-style RTTI:

    The argument type of `classof()` should be a strict ancestor.

For more information about implementing LLVM-style RTTI, see
docs/HowToSetUpLLVMStyleRTTI.rst

llvm-svn: 165765
2012-10-11 23:30:40 +00:00
Richard Smith
2735d2748d Don't pass a null pointer to cast<> in its unit tests.
llvm-svn: 162310
2012-08-21 20:39:25 +00:00
NAKAMURA Takumi
999142ef4a unittests/Support/Casting.cpp: [PR8226] Workaround for MSVC|Debug.
llvm-svn: 148659
2012-01-22 12:14:35 +00:00
Gabor Greif
e0be902ad9 add dyn_cast_or_null tests, exclude invalid dyn_cast test
llvm-svn: 109111
2010-07-22 15:37:20 +00:00
Gabor Greif
819f063563 tidy up
llvm-svn: 109110
2010-07-22 15:28:30 +00:00
Gabor Greif
4340654a0d add dyn_cast tests and beef up others a bit
llvm-svn: 109109
2010-07-22 15:24:48 +00:00
Gabor Greif
b21adc8fa7 tidy up
llvm-svn: 108889
2010-07-20 19:35:55 +00:00
Gabor Greif
6cfb2ee7cb migrate essentially everything from under #ifdef DEBUG_CAST_OPERATORS into this file
llvm-svn: 108864
2010-07-20 17:06:28 +00:00
Gabor Greif
e93d8941f9 extend to cast<> and cast_or_null<> tests
llvm-svn: 108854
2010-07-20 16:51:18 +00:00
Gabor Greif
c2c3e4155d isa<> tests
llvm-svn: 108851
2010-07-20 16:38:12 +00:00
Gabor Greif
e718b091ae initial checkin for unittest to exercise Support/Casting.h
this is still minimal on purpose, but I plan to migrate the ugly
hack under #ifdef DEBUG_CAST_OPERATORS into this file

llvm-svn: 108849
2010-07-20 16:32:20 +00:00