Commit Graph

12 Commits

Author SHA1 Message Date
Chandler Carruth
5a88dda4be Sort the #include lines for unittest/...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169250 91177308-0d34-0410-b5e6-96231b3b80d8
2012-12-04 10:23:08 +00:00
Sean Silva
8b8fa7b2f4 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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165765 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-11 23:30:40 +00:00
Richard Smith
79b59a2766 Don't pass a null pointer to cast<> in its unit tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162310 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-21 20:39:25 +00:00
NAKAMURA Takumi
2a53577728 unittests/Support/Casting.cpp: [PR8226] Workaround for MSVC|Debug.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148659 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-22 12:14:35 +00:00
Gabor Greif
f06eb3719a add dyn_cast_or_null tests, exclude invalid dyn_cast test
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109111 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-22 15:37:20 +00:00
Gabor Greif
46a35015f5 tidy up
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109110 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-22 15:28:30 +00:00
Gabor Greif
d159467ad6 add dyn_cast tests and beef up others a bit
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109109 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-22 15:24:48 +00:00
Gabor Greif
b3c90d96bd tidy up
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108889 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-20 19:35:55 +00:00
Gabor Greif
e8950977a5 migrate essentially everything from under #ifdef DEBUG_CAST_OPERATORS into this file
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108864 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-20 17:06:28 +00:00
Gabor Greif
08993c03ab extend to cast<> and cast_or_null<> tests
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108854 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-20 16:51:18 +00:00
Gabor Greif
af8e2ef649 isa<> tests
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108851 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-20 16:38:12 +00:00
Gabor Greif
ee57dae3d8 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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108849 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-20 16:32:20 +00:00