summaryrefslogtreecommitdiff
path: root/test/SemaTemplate/canonical-expr-type.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Preserve numeric literal suffixes during type canonicalization.Richard Smith2014-11-201-0/+8
| | | | | | | Patch by Pierre Gousseau! Test cases altered significantly by me. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222404 91177308-0d34-0410-b5e6-96231b3b80d8
* Sema: Do not merge new decls with invalid, old declsDavid Majnemer2013-07-071-5/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Sema::MergeFunctionDecl attempts merging two decls even if the old decl is invalid. This can lead to interesting circumstances where we successfully merge the decls but the result makes no sense. Take the following for example: template <typename T> int main(void); int main(void); Sema will not consider these to be overloads of the same name because main can't be overloaded, which means that this must be a redeclaration. In this case the templated decl is compatible with the non-templated decl allowing the Sema::CheckFunctionDeclaration machinery to move on and do bizarre things like setting the previous decl of a non-templated decl to a templated decl! The way I see it, we should just bail from MergeFunctionDecl if the old decl is invalid. This fixes PR16531. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@185779 91177308-0d34-0410-b5e6-96231b3b80d8
* Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'.Daniel Dunbar2009-12-151-1/+1
| | | | | | | | | - This is designed to make it obvious that %clang_cc1 is a "test variable" which is substituted. It is '%clang_cc1' instead of '%clang -cc1' because it can be useful to redefine what gets run as 'clang -cc1' (for example, to set a default target). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91446 91177308-0d34-0410-b5e6-96231b3b80d8
* Make canonicalization of overloaded function declarations match theDouglas Gregor2009-07-311-2/+3
| | | | | | | | Itanium C++ ABI's name mangling, since both are related to the notion of "equivalent" function templates. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77678 91177308-0d34-0410-b5e6-96231b3b80d8
* Canonicalize function parametersDouglas Gregor2009-07-311-9/+6
| | | | git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77676 91177308-0d34-0410-b5e6-96231b3b80d8
* Canonicalization and profiling for overloaded function declarations,Douglas Gregor2009-07-311-0/+17
| | | | | | | | | for those extra-esoteric cases. Not that any two given C++ compilers agree on this test case, but this change gives us a strong definition of equivalent types. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77664 91177308-0d34-0410-b5e6-96231b3b80d8
* Canonicalize dependent extended vector types.Douglas Gregor2009-07-311-0/+12
| | | | git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77663 91177308-0d34-0410-b5e6-96231b3b80d8
* Build canonical types for dependently-sized array types.Douglas Gregor2009-07-311-1/+11
| | | | git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77647 91177308-0d34-0410-b5e6-96231b3b80d8
* Canonicalization for dependent typeof(expr) types.Douglas Gregor2009-07-301-0/+16
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77639 91177308-0d34-0410-b5e6-96231b3b80d8