aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2009-07-23Update C++ status to reflect progress on out-of-line definitions of class ↵Douglas Gregor
template members git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76917 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-23This patch fixes the implementations of the __has_trivial_destructorDouglas Gregor
and __has_trivial_constructor builtin pseudo-functions and additionally implements __has_trivial_copy and __has_trivial_assign, from John McCall! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76916 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-23Output UTF-16 string literals independent of host byte order.Daniel Dunbar
- Steve, can you take a look at this? It seems like this code should live elsewhere, and there is a FIXME about having Sema validates the UTF-8 to UTF-16 conversion. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76915 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-23Diagnose when base classes and members to be intializedFariborz Jahanian
with constructors don't have a matching constructor. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76913 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-23Refactor and push the evaluation as late as possible.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76911 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-23Factor out map lookup for CFString constants.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76908 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-23Don't just store the field/bit field info one field, do it for all fields in ↵Anders Carlsson
the union. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76907 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-23Some cleanups suggested by Daniel.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76906 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-23Implement: <rdar://problem/6335715> rule request: gets() buffer overflowTed Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76905 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-23Fix another thinko.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76903 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-23Add comments.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76901 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-23Refine checking and diagnostics for use of floating point variable as a counter.Ted Kremenek
This implements <rdar://problem/6336718> and checks for CERT secure coding advisory FLP30-C. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76900 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-23Correct a thinko in bitfield layout code. Fixes PR4611.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76898 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-23Simplify, NFC.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76897 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-23Switch the driver back to always using clang-cc by default (for C++, andDaniel Dunbar
regardless of the architecture). - This is a good default for development & testing; for example without this any tests using 'clang' in the test suite will fail on PowerPC, since the driver will avoid using clang. - We don't want to actually ship something built this way, but that should be handled via some sort of configuration file. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76886 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-23Simplify.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76885 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-23We don't need to keep track of the packed alignment, just whether the struct ↵Anders Carlsson
is packed or not. Fixes PR4610. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76884 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-23Move the LLVM field number for bit fields into the BitFieldInfo structure, ↵Anders Carlsson
since it's meaning is completely different than for non-bit fields. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76882 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-23Clean up the ActOnTag action, so that there is only a single entryDouglas Gregor
point that covers templates and non-templates. This should eliminate the flood of warnings I introduced yesterday. Removed the ActOnClassTemplate action, which is no longer used. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76881 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-23Unbreak the CMake buildDouglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76878 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-23Add two nodes to the call graph:Zhongxing Xu
- Root is the main function or 0. - ExternalCallingNode has edges to all external functions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76876 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-23Add template specializations to view the call graph in dot format.Zhongxing Xu
- change the DenseMap used in callgraph to std::map, since DenseMap cannot be used with mapped_iterator and friends. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76874 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-23constify methods.Zhongxing Xu
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76873 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-23Add getter methods.Zhongxing Xu
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76871 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-23Add newline at EOF.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76870 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-23Shield clang from LLVM API changes, until the dust settles.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76862 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-23Fix test case, which has a control-reaches-end-of-non-void warning that wasDaniel Dunbar
being masked by previous bug. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76858 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-23Use llvm::BitVector instead of managing memory by hand.Daniel Dunbar
- As it happens, this also fixes a use-of-uninitialized memory that was causing non-deterministic test failures. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76857 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-23Set field info for unions.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76856 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-23Use arrays as union padding. Also, since the resulting struct will always ↵Anders Carlsson
contain a single element and either a single i8 element or an array of i8s, there's no reason to use a packed struct. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76854 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-23Revert r76831, there are many Analyzer test failures on multiple platforms.Daniel Dunbar
--- Reverse-merging r76831 into '.': U include/clang/Analysis/PathSensitive/GRExprEngine.h U lib/Analysis/GRExprEngine.cpp git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76851 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-23Handle zero width bit fields in unions correctly (by ignoring them).Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76847 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-23Implement union layout support.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76846 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-23Check in CGRecordLayoutBuilder which is a reimplementation of the record ↵Anders Carlsson
layout code. (Yay, no more packed structs unless absolutely necessary). We currently don't use the layouts being built but that will change when the new code is mature enough :) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76845 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-23These IRgen improvements have been done.Daniel Dunbar
Technically we could still do a bit more to avoid deferred generation of statics which we know are used, but I seriously doubt this is important. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76844 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-23Add initial implementation of checking for uses of floating point as a loop ↵Ted Kremenek
counter. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76833 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-23Add instance predicate method to match static method.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76832 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-23Add 'previsit' Checker pass for ObjCMessageExprs.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76831 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-23Remove a bunch of FIXME's related to ObjC type checking.Steve Naroff
- Move Sema::ObjCQualifiedIdTypesAreCompatible(), Sema::QualifiedIdConformsQualifiedId(), and a couple helper functions to ASTContext. - Change ASTContext::canAssignObjCInterfaces() to use ASTContext:: ObjCQualifiedIdTypesAreCompatible(). - Tweak several test cases to accommodate the new/improved type checking. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76830 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-23Add constructor used to initialize base/member inFariborz Jahanian
CXXBaseOrMemberInitializer AST node. Needed by its clients to do the initialization. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76826 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-23Fix case, apparently some people still build on case sensitiveMike Stump
filesystems. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76824 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-22Add warning for falling off the end of a function that should return aMike Stump
value. This is on by default, and controlled by -Wreturn-type (-Wmost -Wall). I believe there should be very few false positives, though the most interesting case would be: int() { bar(); } when bar does: bar() { while (1) ; } Here, we assume functions return, unless they are marked with the noreturn attribute. I can envision a fixit note for functions that never return normally that don't have a noreturn attribute to add a noreturn attribute. If anyone spots other false positives, let me know! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76821 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-22Implement support for out-of-line definitions of the class members of classDouglas Gregor
templates, e.g., template<typename T> struct Outer { struct Inner; }; template<typename T> struct Outer<T>::Inner { // ... }; Implementing this feature required some extensions to ActOnTag, which now takes a set of template parameter lists, and is the precursor to removing the ActOnClassTemplate function from the parser Action interface. The reason for this approach is simple: the parser cannot tell the difference between a class template definition and the definition of a member of a class template; both have template parameter lists, and semantic analysis determines what that template parameter list means. There is still some cleanup to do with ActOnTag and ActOnClassTemplate. This commit provides the basic functionality we need, however. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76820 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-22Fix test breakage.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76816 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-22Change Preprocessor to keep a copy of LangOptions instead of reference, like ↵Argyrios Kyrtzidis
ASTContext. Now when creating a Preprocessor we can pass it a temporary LangOptions object instead of having to remember to keep it around. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76815 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-22Improve CFG support for C++ throw expressions.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76814 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-22Prep for new warning.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76813 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-22Refactor 'PostStmt' and 'PreStmt' to subclass a common parent 'StmtPoint'.Ted Kremenek
Educate GRExprEngine::VisitGraph() about 'PreStmt'. Mark the constructor of 'PostStmt' to be explicit, preventing implicit conversions and the selection of the wrong 'generateNode' method in GRStmtNodeBuilder. Constify a bunch of arguments, which falls out of the changes to ProgramPoint. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76809 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-22Slight code reorganization to allow instantiating post-inc/dec.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76807 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-22Calls to Sema::MatchTemplateParametersToScopeSpecifier should not depend on ↵Douglas Gregor
the order of evaluation of their arguments to be correct. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76804 91177308-0d34-0410-b5e6-96231b3b80d8