aboutsummaryrefslogtreecommitdiff
path: root/lib
AgeCommit message (Collapse)Author
2008-08-22Fix some issues with array type merging. (No visible difference, Eli Friedman
because nothing uses the merged types yet.) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55161 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-22Minor const cleanup.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55160 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-22Rewrite type compatibility testing to do type merging rather than just Eli Friedman
testing compatibility. This is necessary for some constructs, like merging redeclarations. Also, there are some ObjC changes to make sure that typesAreCompatible(a,b) == typesAreCompatible(b,a). I don't have any ObjC code beyond the testsuite, so please tell me if there are any cases where this doesn't behave as expected. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55158 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-22Initial implementation of floats in Expr::tryEvaluate; this doesn't Eli Friedman
implement some things, like unary operators and casts, but it's enough to fix PR2703 as filed. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55155 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-21Modify comments.Zhongxing Xu
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55150 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-21Move the handling of DeclStmt from GRExprEngine to BasicStoreManager.Zhongxing Xu
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55144 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-21NeXT: Emit [meta]class protocol references.Daniel Dunbar
Updated ObjCProtocolDecl::protocol_iterator to match that of ObjCInterfaceDecl. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55143 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-21add a simple check to warn people who type "=+" when they probably meantChris Lattner
"+=". git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55131 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-21Preliminary support for Obj-C classes in NeXT runtime.Daniel Dunbar
- Functional for simple cases but there are some glaring omissions (protocols, properties, and other language extensions). - The code needs a fair bit of cleaning. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55108 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-21Remove duplicate define from Windows-x86 target.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55101 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-21Initial implementation of Windows x86 target; at the moment, the only Eli Friedman
difference from generic x86 is the defines. The rest is non-trivial to implement. I'm not planning on adding any more targets myself; if there are any targets anyone is currently using that are missing, feel free to add them, or ask me to add them. This concludes the work I'm planning for the TargetInfo implementations at the moment; all the other issues with TargetInfo require some API changes, and I haven't really thought it through. Some of the remaining issues: allowing targets to define size_t and wchar_t properly, adding some sort of __builtin_type_info intrinsic so we can finish clang's limits.h and float.h and get rid of a massive number of macro definitions, allowing target-specific command-line options, allowing target-specific defaults for certain command-line options like -fms-extensions, exposing vector alignment outside of the description string, exposing endianness outside of the description string, allowing targets to expose special bit-field layout requirements, exposing some sort of custom hook for call generation in CodeGen, and adding CPU selection to control defines like __SSE__. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55098 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-21Add Linux x86-32 target.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55095 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-21First cut at OS detection, taking advantage of the new generic targets. Eli Friedman
This approach allows adding OS-specific targets/defines/etc. without completely breaking unknown subtargets. No new subtargets yet, although I plan to add x86-Linux soon. Others can add targets that they use as needed; adding a new subtarget takes very little code. Also does some fixups for description strings; a lot of them were unspecified. I think all the ones I added are correct, but they're unverified; corrections are welcome. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55091 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-20Class reorg for PPC; shouldn't be any visible changes unless I messed Eli Friedman
up somehow. This concludes the series of reorg patches for the target implementations. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55086 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-20Fix a regression from my fix to PR2631. Fixes PR2692.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55083 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-20Fix a minor crash-on-invalid.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55082 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-20Fix attributes on Obj-C interfaces & methods.Daniel Dunbar
- Drop MethodAttrs parameter to ObjCMethodDecl - Call ProcessDeclAttributeList for interface & method decls. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55068 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-20Patch by Zhongxing Xu:Ted Kremenek
This patch moves some code in GRStateManager::RemoveDeadBindings() to EnvironmentManager::RemoveDeadBindings(). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55064 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-20Patch by Zhongxing Xu: We should set back the modified ConstEq map.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55060 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-20Class reorg for ARM. Shouldn't be any visible changes.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55042 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-20Class hierarchy reorg for Sparc architecture. While I was there, I Eli Friedman
cleaned it up a bit, including fixing the definition of va_list; this shouldn't break anything, but anyone using Sparc should watch for regressions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55041 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-20Fix subtle bug introduced in r54852.Daniel Dunbar
- UsualUnaryConversions takes an Expr *& and may modify its argument, this broke when it was refactored into Sema::CheckCastTypes. This meant that we were missing implicit casts in some places. - Seems pretty sad that this got through our tests. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55039 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-20Re-enable deletion of AST nodes upon completion of ParseAST.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55038 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-20Added ObjCAtDefsFieldDecl to represent FieldDecls created by @defs.Ted Kremenek
This fixes an ownership issue where FieldDecls could be owned both by an ObjCInterfaceDecl and a RecordDecl. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55037 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-20Reorganize the class hierarchy for x86 targets; shouldn't have any Eli Friedman
visible effects, but this will significantly reduce the amount of boilerplate code necessary to add subtargets. If this looks okay, I'll do the rest of the processors (PPC, Sparc, ARM) soon. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55036 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-20Move all Obj-C runtime interaction into CodeGenFunction.Daniel Dunbar
- Drop duplicate (and broken) code for sending messages. - Add EmitObjCProtocolExpr to CodeGenFunction. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55024 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-19Move store pretty-printing logic inside of StoreManager (previously in GRState).Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55013 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-19Patch by Zhongxing Xu!Ted Kremenek
This patch extends BasicStoreManager::getInitialStore() to include code that symbolicates input variables. It also removes redundant handling of ImplicitParamDecl, since it is a subclass of VarDecl. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54993 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-18Add ExplicitCastExpr to replace the current CastExpr, and have ↵Argyrios Kyrtzidis
ImplicitCastExpr and ExplicitCastExpr derive from a common base class (CastExpr): Expr -> CastExpr -> ExplicitCastExpr -> ImplicitCastExpr git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54955 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-18warn when someone tries to make an array of ObjC interfaces instead of arrayChris Lattner
of pointers to them. rdar://4304469 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54953 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-18"Remove the 'else' since the code is fallthrough after it." - suggestion by ↵Argyrios Kyrtzidis
Chris. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54952 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-18Support initialization of incomplete array with zero size (asDaniel Dunbar
extension). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54946 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-18Fix PR2627, support for Q constraint.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54943 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-18Several cleanups and tweaks to diagnostics in Sema::ActOnAsmStmt,Chris Lattner
no other functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54941 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-18Allow targets to override description string.Sanjiv Gupta
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54914 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-17various updates to match r54873 on mainline.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54874 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-17Migrate the retain/release checker to not manage the RefBindings::Factory objectTed Kremenek
directly, but instead have GRStateManager manage it. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54862 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-17Migrate GRState::ConstEqTy (map used from tracking constants for symbols) to ↵Ted Kremenek
use the generic data map instead. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54860 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-17Added GRStateTrait.h, which includes boilerplate code for creating ↵Ted Kremenek
specializations of GRStateTrait<>. Modified GRStateTrait<ConstNotEq> in GRState to use the boilerplate in GRStateTrait<> for ImmutableMaps. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54859 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-16honor EscapeSpaces in 2nd overload of EscapeText()Nico Weber
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54854 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-16Move the type checking that Sema::ActOnCastExpr does into a new ↵Argyrios Kyrtzidis
Sema::CheckCastTypes function so that it can be reused. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54852 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-16Put (argument)-expression-list parsing in a separate function so that it can ↵Argyrios Kyrtzidis
be re-used. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54851 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-16C++ casts, (static_cast. dynamic_cast, etc.) can have postfix-expression pieces.Argyrios Kyrtzidis
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54850 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-16Move handling of postfix-expression suffixes out of ParseCXXThis and into ↵Argyrios Kyrtzidis
ParseCastExpression. No functionality change, this follows the convention of how postfix-expressions are handled. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54849 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-16It's spelt "uninitialized".Nick Lewycky
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54848 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-16Set the SourceRange ending of DeclSpec, when Parser::ParseTypeofSpecifier ↵Argyrios Kyrtzidis
finishes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54840 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-16Add NeXT runtime support for generating methods.Daniel Dunbar
Change CodeGenFunction::EmitParmDecl to take either a ParmVarDecl or an ImplicitParamDecl. Drop hasAggregateLLVMType from CodeGenModule.cpp (use version in CodeGenFunction). Change the Objective-C method generation to use EmitParmDecl for implicit parameters. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54838 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-16Add CodeGen support for AddrLabelExpr in initializers.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54837 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-16Change WarnUnsupported to ErrorUnsupported (in name and in practice).Daniel Dunbar
- We are beyond the point where this shows up often and when it does generating miscompiled files is bad. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54836 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-16GRState:Ted Kremenek
- Remove ConstNotEq from GRState/GRStateManager (!= tracking uses GDM instead). - GRStateManager now can book-keep "contexts" (e.g., factory objects) for uses with data elements stored into the GDM. - Refactor pretty-printing of states to use GRState::Printer objects exclusively. This removed a huge amount of pretty-printing logic from GRExprEngine. CFRefCount - Simplified some API calls based on refinements to the GDM api. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54835 91177308-0d34-0410-b5e6-96231b3b80d8