aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2010-05-19Implement codegen for __builtin_isnormal.Benjamin Kramer
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104118 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-19Provide a naming class for UnresolvedLookupExprs, even when occuring onChandler Carruth
template names. We were completely missing naming classes for many unqualified lookups, but this didn't trigger code paths that need it. This removes part of an optimization that re-uses the template name lookup done by the parser to determine if explicit template arguments actually form a template-id. Unfortunately the technique for avoiding the duplicate lookup lost needed data such as the class context in which the lookup succeeded. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104117 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-19Profile type-dependent uses of overloaded operators in C++ the sameDouglas Gregor
way regardless of whether some overloaded operator functions were found by name lookup within the template. Fixes PR6851. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104107 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-19Teach clang to instantiate attributes on more declarations. Fixes PR7102.Douglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104106 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-19Implement C++ builtin operator candidates for vector types.Douglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104105 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-19Fix a GCC warning about inline functions not being defined. Until r104081, onlyChandler Carruth
the same .cpp file as provided the definitions referenced these functions, hiding the issue. However, they are clearly no longer inline. Let me know if there is a reason to move their definitions to the header and make them truly inline. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104104 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-19Fix an obvious goof that rjmccall found by inspection. No testcase, suggestionsChandler Carruth
welcome for one. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104101 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-18Basic test for user-defined conversions involving vector typesDouglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104085 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-18Misc. fixes to bring Objetive-C++'s handling ofFariborz Jahanian
gc attributes to be inline with Objective-C (for radar 7925141). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104084 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-18Protect isIntegerConstantExpr from seeing type- or value-dependentDouglas Gregor
expressions in attributes, pragmas. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104083 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-18Implement C++ support for vector and extended vector types. ThisDouglas Gregor
involves extending implicit conversion sequences to model vector conversions and vector splats, along with teaching the C++ conditional operator-checking code about vector types. Fixes <rdar://problem/7983501>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104081 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-18Add function 'clang_isTagDeclDefinition()' to allow clients of libclang to ↵Ted Kremenek
distinguish between forward declarations and definitions of structs/classes/enums. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104075 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-18Teach CursorVisitor about duplicate ObjCPropertyDecls that can arise because ↵Ted Kremenek
of a current design limitation in how we handle Objective-C class extensions. This was causing the CursorVisitor to essentially visit an @property twice (once in the @interface, the other in the class extension). Fixes <rdar://problem/7410145>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104055 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-18These test now run in objective-c++ mode we well.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104041 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-18Add missing test case, provided by Steven Watanabe.Douglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104037 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-18Fix typo test caseDouglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104027 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-18Add support for Microsoft's __thiscall, from Steven Watanabe!Douglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104026 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-18Correctly initialize bases with member pointers. This should fix PR6441 but ↵Anders Carlsson
that test case is a bit weird and I'd like to investigate further before closing that bug. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104025 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-18Give a slight edge to the context-sensitive keyword 'super' overDouglas Gregor
non-function-local declarations with names similar to what the user typed. For example, this allows us to correct 'supper' to 'super' in an Objective-C message send, even though the C function 'isupper' has the same edit distance. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104023 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-18Tweak typo-correction logic a bit regarding "super", so that weDouglas Gregor
consider "super" as a candidate whenever we're parsing an expression within an Objective-C method in an interface that has a superclass. At some point, we'd like to give "super" a little edge over non-local names; that will come later. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104022 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-18Permit Objective C object pointers to be const_casted.John McCall
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104019 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-18Switch over the tablegen to use much prettier range technologySean Hunt
Also rename ABSTRACT to ABSTRACT_STMT, in keeping with the other .def files git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104017 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-18"The attached patch allows clang to find the headersDouglas Gregor
for Visual Studio 2010. It also adds a registry search for the Express edition,", from Steven Watanabe! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104015 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-18I hate this commit.Douglas Gregor
Revert much of the implementation of C++98/03 [temp.friend]p5 in r103943 and its follow-ons r103948 and r103952. While our implementation was technically correct, other compilers don't seem to implement this paragraph (which forces the instantiation of friend functions defined in a class template when a class template specialization is instantiated), and doing so broke a bunch of Boost libraries. Since this behavior has changed in C++0x (which instantiates the friend function definitions when they are used), we're going to skip the nowhere-implemented C++98/03 semantics and go straight to the C++0x semantics. This commit is a band-aid to get Boost up and running again. It doesn't really fix PR6952 (which this commit un-fixes), but it does deal with the way Boost.Units abuses this particular paragraph. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104014 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-18Keep track of the LLVM field numbers for non-virtual bases.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104013 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-18Start laying out bases as individual fields. We still use ugly i8 arrays but ↵Anders Carlsson
this is a step in the right direction. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104012 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-18Add CodeGenTypes::ContainsPointerToDataMember overload that takes a ↵Anders Carlsson
CXXRecordDecl. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104011 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-18If a switch condition is constant, don't warn about missing enum cases.John McCall
If a switch condition is constant, warn if there's no case for it. Constant switch conditions do come up in reasonable template code. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104010 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-18Add option '-analyzer-max-loop', which specifies the maximum Zhongxing Xu
number of times the analyzer will go through a loop. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104007 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-17Teach the ObjC mangler to ignore member pointers just like gcc does.John McCall
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104001 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-17Add a hack to silence warnings about failing to return from functions afterChandler Carruth
a temporary with a noreturn destructor has been created. Fixes PR6884 for now. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104000 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-17Instantiate attributes on typedefs. This is a quick fix for PR7148,Douglas Gregor
when we really need a proper audit of our handling of attributes in templates. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103999 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-17Add a 'Base' type to RecursiveASTVisitor to make recursing easier and documentNick Lewycky
how you're supposed to use it. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103993 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-17Clean up test case and remove XFAIL. This test can now distinguish betweenTed Kremenek
cases where Clang can suggest and fix and suggest and not auto-fix (because of current limitations). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103987 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-17Comments and assorted cleanups for the Objective C type AST.John McCall
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103986 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-17Clean up some more uses of getAs<ObjCInterfaceType>() that Fariborz pointedJohn McCall
out. The remaining ones are okay. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103973 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-17Fix an ambiguous else warning from GCC by adding some much needed curlies.Chandler Carruth
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103972 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-17robustify the conflict marker stuff. Don't add 7 twice, which wouldChris Lattner
make it miss (invalid) things like: <<<<<<< >>>>>>> and crash if <<<<<<< was at the end of the line. When we find a >>>>>>> that is not at the end of the line, make sure to reset Pos so we don't crash on something like: <<<<<<< >>>>>>> This isn't worth making testcases for, since each would require a new file. rdar://7987078 - signal 11 compiling "<<<<<<<<<<" git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103968 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-17Fix missing '}'.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103966 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-17Correctly generate IR for ObjC messages sends to protocol-qualified types.John McCall
Fixes rdar://problem/7992749 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103965 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-17Add libclang function 'clang_CXXMethod_isStatic' to query of a C++ methodTed Kremenek
is declared static. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103963 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-17Test that mutability of class members that involve class definitions ↵Douglas Gregor
actually works git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103959 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-17Teach ASTContext::getUnqualifiedArrayType() how to look throughDouglas Gregor
typedefs. As a drive-by, teach hit how to build VLA types, since those will eventually be supported in C++. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103958 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-17mutable is a storage class that can follow a class/struct/union definition. ↵Douglas Gregor
Fixes PR7153 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103954 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-17Don't attempt to poke into an invalid field's class typeFariborz Jahanian
to mark its destructors as referenced which may cause a crash. Fixes radar 7896920 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103953 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-17Diagnose a redefinition error when there are two instantiations of friendDouglas Gregor
functions defined inside a class template. Fixes PR6952, the last Boost.Units failure. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103952 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-17Determine when the instantiation of a friend function defined inside aDouglas Gregor
class template conflicts with an existing (non-template) definition. This is another part of PR6952. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103948 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-17IRgen: Remove dead function.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103945 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-17C++/Darwin/i386 ABI: Fix some problems with empty record handling.Daniel Dunbar
- Check bases as part of isEmptyRecord(). - C++ record fields are never empty in the Itanium ABI. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103944 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-17C++98/03 [temp.friend]p4 requires that inline function definitionsDouglas Gregor
within class templates be instantiated along with each class template specialization, even if the functions are not used. Do so, as a baby step toward PR6952. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103943 91177308-0d34-0410-b5e6-96231b3b80d8