summaryrefslogtreecommitdiffstats
path: root/clang/lib
Commit message (Collapse)AuthorAgeFilesLines
* Try to not emit the dead side of ?: if the condition is a constant.Chris Lattner2008-11-111-4/+21
| | | | llvm-svn: 59061
* Introduce a single AST node SizeOfAlignOfExpr for all sizeof and alignof ↵Sebastian Redl2008-11-1116-232/+167
| | | | | | expressions, both of values and types. llvm-svn: 59057
* Add transfer function support for ObjCForCollectionStmt to LiveVariables.Ted Kremenek2008-11-111-1/+17
| | | | llvm-svn: 59053
* Add CFG support for Objective-C 2.0 fast enumeration 'for' statement:Ted Kremenek2008-11-111-13/+77
| | | | | | | | http://developer.apple.com/documentation/Cocoa/Conceptual/ObjectiveC/Articles/chapter_7_section_2.html#//apple_ref/doc/uid/TP30001163-CH18-SW3 Need to modify GRExprEngine, LiveVariables, and UninitializedValues to understand this construct. llvm-svn: 59049
* Implement C++ 'typeid' parsing and sema.Sebastian Redl2008-11-1112-7/+169
| | | | llvm-svn: 59042
* Add CodeGenFunction::EmitBranch.Daniel Dunbar2008-11-116-41/+40
| | | | | | | - Emits an unconditional branch, with extra logic to avoid generating spurious branches out of dummy blocks. llvm-svn: 59037
* Fix cmake build, patch from Jjgod Jiang.Daniel Dunbar2008-11-111-0/+2
| | | | llvm-svn: 59036
* short circuit && and || when possible. This substantially reducesChris Lattner2008-11-114-28/+64
| | | | | | | | the size of the -O0 output on some cases. For example, on expr.c from 176.gcc, it shrinks the .ll file from 43164 to 42835 lines, and removed references to two external symbols. llvm-svn: 59034
* Make codegen smart enough to not emit the dead side of an if whoseChris Lattner2008-11-111-5/+49
| | | | | | | condition is a constant. This shrinks -O0 codegen by quite a bit on some cases. llvm-svn: 59033
* implement debug info for typeof()Chris Lattner2008-11-111-6/+9
| | | | llvm-svn: 59032
* Fix PR3031 by silencing follow-on errors in invalid declarations.Chris Lattner2008-11-112-3/+5
| | | | llvm-svn: 59027
* Add CodeGenFunction::EmitDummyBlock for marking places where we makeDaniel Dunbar2008-11-113-7/+16
| | | | | | | "dummy" blocks (blocks just used to make sure we have a place to dump code to). llvm-svn: 59022
* Remove CodeGenFunction::StartBlock.Daniel Dunbar2008-11-112-14/+4
| | | | | | - Was confusing and only used in one small part of the code. llvm-svn: 59020
* Centralize basic block creation in CodeGenFunction::createBasicBlock.Daniel Dunbar2008-11-119-68/+73
| | | | | | - No functionality change. llvm-svn: 59017
* Fix StringLiteral print bug.Zhongxing Xu2008-11-111-1/+17
| | | | llvm-svn: 59015
* Fix Release-Asserts warning.Daniel Dunbar2008-11-111-0/+1
| | | | llvm-svn: 59013
* Basic support for taking the address of an overloaded functionDouglas Gregor2008-11-105-5/+147
| | | | llvm-svn: 59000
* Remove an out-of-date FIXMEDouglas Gregor2008-11-101-1/+0
| | | | llvm-svn: 58990
* Improve parser error recovery after a constructor initializerDouglas Gregor2008-11-101-2/+22
| | | | llvm-svn: 58989
* Allow user-defined conversions during reference bindingDouglas Gregor2008-11-101-2/+62
| | | | llvm-svn: 58988
* Don't create a typedef for the injected-class-nameDouglas Gregor2008-11-101-14/+5
| | | | llvm-svn: 58987
* Some cleanups to the declaration/checking of overloaded operators in C++. ↵Douglas Gregor2008-11-103-95/+43
| | | | | | Thanks to Sebastian for the review llvm-svn: 58986
* Add pretty printing to StringRegion.Zhongxing Xu2008-11-101-0/+4
| | | | llvm-svn: 58985
* Implement RegionStoreManager::RemoveDeadBindings(). This prunes several ↵Zhongxing Xu2008-11-101-4/+20
| | | | | | false warning caused by removal of symbolic constraints. Currently we just mark all symbols live. Further optimization for dead binding removal needed. llvm-svn: 58982
* don't preserve names on IR instructions. This matches llvm-gcc's behavior andChris Lattner2008-11-101-1/+2
| | | | | | speeds up the compiler by ~8% at -emit-llvm -O0. llvm-svn: 58977
* Fix even more bugs in debug info support:Chris Lattner2008-11-101-5/+0
| | | | | | | | | 1. emit proper debug info for forward decls of structs. 2. emit DW_TAG_member nodes around members of a field like llvm-gcc does. This slows down debug info generation, but is required for correctness. llvm-svn: 58973
* reimplement debug info generation in terms of DebugInfo.h instead ofChris Lattner2008-11-103-722/+410
| | | | | | | using MachineModuleInfo. This runs at about the same speed as the old code, but fixes a bunch of bugs and is simpler and shorter. llvm-svn: 58971
* Print integer value instead of raw pointer. This is a hack to be fixed by ↵Zhongxing Xu2008-11-101-3/+1
| | | | | | migrating the output in analyzer to llvm::raw_ostream. llvm-svn: 58965
* silence a warning from gcc.Chris Lattner2008-11-101-0/+1
| | | | llvm-svn: 58956
* Introduce ScopedDecl::getLexicalDeclContext() which is different from ↵Argyrios Kyrtzidis2008-11-094-21/+64
| | | | | | | | | | | | | ScopedDecl::getDeclContext() when there are nested-names. e.g.: namespace A { void f(); // SemanticDC (getDeclContext) == LexicalDC (getLexicalDeclContext) == 'namespace A' } void A::f(); // SemanticDC == namespace 'A' // LexicalDC == global namespace llvm-svn: 58948
* When a tag has nested-name ('struct foo::bar'), use not 'CurContext' but the ↵Argyrios Kyrtzidis2008-11-091-15/+19
| | | | | | context of the nested-name ('foo::'). llvm-svn: 58945
* Simplify handling of nested-names in tags ('struct foo::bar').Argyrios Kyrtzidis2008-11-092-59/+55
| | | | | | | -Use more of the non nested-name code path. -Also use the ActOnTagStruct code path. llvm-svn: 58944
* Support named operands in inline asm statements.Anders Carlsson2008-11-091-6/+51
| | | | llvm-svn: 58940
* Implement Sema support for C++ nested-name-specifiers.Argyrios Kyrtzidis2008-11-086-44/+344
| | | | llvm-svn: 58916
* Implement support for C++ nested-name-specifiers ('foo::bar::x') in the ↵Argyrios Kyrtzidis2008-11-0811-79/+392
| | | | | | | | Parser side. No Sema functionality change, just the signatures of the Action/Sema methods. llvm-svn: 58913
* Introduce annotation tokens, a special kind of token, created and used only ↵Argyrios Kyrtzidis2008-11-081-0/+24
| | | | | | | | by the parser to replace a group of tokens with a single token encoding semantic information. Will be fully utilized later for C++ nested-name-specifiers. llvm-svn: 58911
* Move named cast helpers out of Sema, as Chris requested. This requirse ↵Sebastian Redl2008-11-082-141/+148
| | | | | | making a few functions public that weren't before. llvm-svn: 58906
* Revert r58880, it breaks test/SemaCXX/constructor.cppArgyrios Kyrtzidis2008-11-081-2/+1
| | | | llvm-svn: 58904
* Use only one constructor for CXXMethodDecl. Keep initialization stuff into ↵Argyrios Kyrtzidis2008-11-081-1/+1
| | | | | | one place. llvm-svn: 58902
* Avoid redundant cast<>s / simplify type dispatch.Daniel Dunbar2008-11-082-45/+34
| | | | llvm-svn: 58892
* Support getTypeInfo, getTypeAlign, getTypeSize on const Type*s.Daniel Dunbar2008-11-081-6/+8
| | | | | | | | - Size/align are not effected by CVR qualifiers. Support getCanonicalType: const Type* -> const Type*. llvm-svn: 58891
* "Fix" PR3021, don't crash on generating record types when we can'tDaniel Dunbar2008-11-081-2/+6
| | | | | | generate the type of a member. llvm-svn: 58889
* Silence a gcc warning.Daniel Dunbar2008-11-081-1/+1
| | | | llvm-svn: 58888
* Add a boilerplate for out-of-bound array checking. This has no real function ↵Zhongxing Xu2008-11-081-0/+22
| | | | | | currently. llvm-svn: 58886
* In a declarator, consider an identifier a constructor only if it is followed ↵Argyrios Kyrtzidis2008-11-081-1/+2
| | | | | | | | | | | | by '('. Previously: class C { int C; // Declarator::SetConstructor was called here. }; llvm-svn: 58880
* Greatly improve static_cast diagnosticsSebastian Redl2008-11-072-67/+129
| | | | llvm-svn: 58873
* Initial, partially-baked support for implicit user-defined conversions by ↵Douglas Gregor2008-11-073-3/+144
| | | | | | conversion functions llvm-svn: 58870
* Changes in preparation for nested-name-specifiers.Argyrios Kyrtzidis2008-11-072-31/+44
| | | | | | | -When parsing declarators, don't depend on "CurScope->isCXXClassScope() == true" for constructors/destructors -For C++ member declarations, don't depend on "Declarator.getContext() == Declarator::MemberContext" llvm-svn: 58866
* Parsing, ASTs, and semantic analysis for the declaration of conversionDouglas Gregor2008-11-077-7/+267
| | | | | | | | | | | | | functions in C++, e.g., struct X { operator bool() const; }; Note that these conversions don't actually do anything, since we don't yet have the ability to use them for implicit or explicit conversions. llvm-svn: 58860
* Assert that Parser::MaybeParseOperatorFunctionId is called when token is ↵Argyrios Kyrtzidis2008-11-071-3/+2
| | | | | | kw_operator, and replace ExpectAndConsume for the 'operator' token with a ConsumeToken. llvm-svn: 58855
OpenPOWER on IntegriCloud