summaryrefslogtreecommitdiffstats
path: root/clang/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* NeXT/EH: When generating the rethrow code for a finally block, make sure toDaniel Dunbar2010-04-231-2/+12
| | | | | | | chain outwards when inside a nested exception scope. - A real test for this is going into LLVM test-suite. llvm-svn: 102204
* NeXT/EH: Tidy up EH code a bit, don't emit the catch block EH handler if it ↵Daniel Dunbar2010-04-231-27/+32
| | | | | | is unreachable. llvm-svn: 102203
* Recommit my change to how C++ does elaborated type lookups, now withJohn McCall2010-04-235-81/+128
| | | | | | two bugfixes which fix selfhost and (hopefully) the nightly tests. llvm-svn: 102198
* More work toward implementingFariborz Jahanian2010-04-235-12/+127
| | | | | | NeXt's -fno-constant-cfstrings - wip. llvm-svn: 102189
* Implement PR6845. We allow matching constraints to have differentChris Lattner2010-04-232-59/+83
| | | | | | | | input and output types when the smaller value isn't mentioned in the asm string. Extend this support from integers to also allowing fp values to be mismatched (if not mentioned in the asm string). llvm-svn: 102188
* Require a complete type for the lhs of member pointer dereference operations ↵Sebastian Redl2010-04-231-0/+5
| | | | | | if the type isn't exactly the same as the container class. Fixes PR6783. llvm-svn: 102186
* david conrad points out that {|} in inline assembly on arm are not asmChris Lattner2010-04-233-3/+11
| | | | | | variants. This fixes neon inline asm which my patch for PR6780 broke. llvm-svn: 102181
* When instantiating a typedef of an anonymous tag type, note in the tagDouglas Gregor2010-04-231-0/+10
| | | | | | | declaration that this typedef gives the tag a name. Fixes a problem uncovered by Boost.GIL (Generic Image Library). llvm-svn: 102180
* Cleanup.Anders Carlsson2010-04-231-2/+1
| | | | llvm-svn: 102179
* Handle copy initialization in BuildImplicitMemberInitializer. Not used yet.Anders Carlsson2010-04-231-6/+35
| | | | llvm-svn: 102178
* add GNU C++ include paths for Fedora 11,12 x86_64,Chris Lattner2010-04-231-1/+13
| | | | | | patch by mikem! llvm-svn: 102177
* Revert "C++ doesn't really use "namespaces" for different kinds of names the ↵Daniel Dunbar2010-04-235-126/+81
| | | | | | same", which seems to break most C++ nightly test apps. llvm-svn: 102174
* Handle compound assignment expressions (i += j) as lvalues, which isDouglas Gregor2010-04-233-11/+82
| | | | | | | permitted in C++ but not in C. Fixes PR6900. Clang can now handle all of Boost.Lambda's regression tests. llvm-svn: 102170
* Add another 'catch all' access diagnostic.Anders Carlsson2010-04-231-2/+3
| | | | llvm-svn: 102169
* Emit a lame diagnostic when we can't mangle operator namesDouglas Gregor2010-04-231-1/+5
| | | | llvm-svn: 102168
* Mangle dependent template names such as the nested-name-specifier inDouglas Gregor2010-04-231-6/+53
| | | | | | | | | T::apply <U>::type Fixes PR6899, although I want to dig a little deeper into the FIXME for dependent template names that refer to operators. llvm-svn: 102167
* Add an ImplicitInitializerKind enum and pass it to ↵Anders Carlsson2010-04-231-11/+62
| | | | | | BuildImplicitBaseInitializer and BuildImplicitMemberInitializer. llvm-svn: 102166
* Fix a think-o that broke self-host.Anders Carlsson2010-04-231-20/+20
| | | | llvm-svn: 102165
* C++ doesn't really use "namespaces" for different kinds of names the sameJohn McCall2010-04-235-81/+126
| | | | | | | | | | | | | way that C does. Among other differences, elaborated type specifiers are defined to skip "non-types", which, as you might imagine, does not include typedefs. Rework our use of IDNS masks to capture the semantics of different kinds of declarations better, and remove most current lookup filters. Removing the last remaining filter is more complicated and will happen in a separate patch. Fixes PR 6885 as well some spectrum of unfiled bugs. llvm-svn: 102164
* Factor code to initialize an implicit member out into a separate function.Anders Carlsson2010-04-231-39/+62
| | | | llvm-svn: 102162
* When parsing a cast-expression that starts with a scope annotation,Douglas Gregor2010-04-231-0/+8
| | | | | | | try to annotate as a type first to determine whether we have a functional-style cast. Patch by Eli Friedman, fixes PR6830. llvm-svn: 102161
* I hate default statements. Fixes PR6874.Douglas Gregor2010-04-231-4/+38
| | | | llvm-svn: 102160
* Remove calls to isDependentContext, since we handle that case earlier in the ↵Anders Carlsson2010-04-231-23/+15
| | | | | | code. Make BuildImplicitBaseInitializer return a boolean instead. llvm-svn: 102159
* Template instantiation for @try and @finally (but not @catch, yet).Douglas Gregor2010-04-221-6/+65
| | | | llvm-svn: 102147
* Make TemplateDecl and ObjCContainerDecl abstractDouglas Gregor2010-04-222-3/+0
| | | | llvm-svn: 102145
* Kill off IDNS_ObjCImplementation and IDNS_ObjCCategoryName; theyDouglas Gregor2010-04-223-17/+5
| | | | | | | aren't and never were used. There's a gap in the bit pattern for IDNS now, but I'm sure *someone* will fill it. llvm-svn: 102143
* Template instantiation for the Objective-C "fast enumeration"Douglas Gregor2010-04-222-7/+52
| | | | | | | | | | statement, i.e., for (element in collection) { // do something } llvm-svn: 102138
* Template instantiation for Objective-C++ @synchronized statements.Douglas Gregor2010-04-222-5/+34
| | | | llvm-svn: 102134
* Implement template instantiation for Objective-C++ @throw statements.Douglas Gregor2010-04-223-17/+47
| | | | llvm-svn: 102133
* Check for -fno-constant-cfstrings consistencyFariborz Jahanian2010-04-222-0/+4
| | | | | | in pch. llvm-svn: 102130
* Support for -fno-constant-cfstrings option - wip.Fariborz Jahanian2010-04-224-1/+26
| | | | llvm-svn: 102112
* Use the naming class from the overloaded lookup when access-checking anJohn McCall2010-04-222-9/+8
| | | | | | | | | | address of overloaded function, instead of assuming that a nested name specifier was used. A nested name specifier is not required for static functions. Fixes PR6886. llvm-svn: 102107
* another tweak for haiku support, patch by Paul Davey!Chris Lattner2010-04-221-0/+2
| | | | llvm-svn: 102098
* Some Objective-C++ types and expressions will never change duringDouglas Gregor2010-04-221-40/+6
| | | | | | | template instantiation, since they cannot be dependent or have dependent parts. Handle them the simple way. llvm-svn: 102094
* When a dependent Objective-C++ message send was able to resolve theDouglas Gregor2010-04-223-138/+146
| | | | | | | | method being called at template definition time, retain that method and pass it through to type-checking. We will not perform any lookup for the method during template instantiation. llvm-svn: 102081
* Remove the SelectorLoc argument to Sema::BuildInstanceMesssage andDouglas Gregor2010-04-223-18/+5
| | | | | | | Sema::BuildClassMessage; we weren't using it, and template instantiation was faking it anyway. llvm-svn: 102074
* Expand the one use of TransformPointerLikeType and eliminate this macro. No ↵Douglas Gregor2010-04-221-24/+17
| | | | | | functionality change llvm-svn: 102073
* Implement template instantiation for Objective-C++ message sends. WeDouglas Gregor2010-04-225-23/+174
| | | | | | | | | | | | support dependent receivers for class and instance messages, along with dependent message arguments (of course), and check as much as we can at template definition time. This commit also deals with a subtle aspect of template instantiation in Objective-C++, where the type 'T *' can morph from a dependent PointerType into a non-dependent ObjCObjectPointer type. llvm-svn: 102071
* ARM/APCS: Don't respect bit-field types when laying out structures.Daniel Dunbar2010-04-221-0/+4
| | | | | | | | | | | - This fixes the last known ABI issues with ARM/APCS. - I've run the first 1k ABITests with '--no-unsigned --no-vector --no-complex' on {armv6, armv7} x {-mno-thumb, -mthumb}, and the first 10k tests for armv7 -mthumb, for both function return types and single argument calls. These all pass now (they failed horribly before without --no-bitfield). llvm-svn: 102070
* IRgen: Fix another case where we generated an invalid access component when weDaniel Dunbar2010-04-221-13/+12
| | | | | | | immediately narrowed the access size. Fix this (and previous case) by just choosing a better access size up-front. llvm-svn: 102068
* IRgen: Fix case where we might generate an access component with width == 0, ifDaniel Dunbar2010-04-221-0/+10
| | | | | | | we have to narrow the access side immediately (can happen with packed, -fno-bitfield-type-align). llvm-svn: 102067
* When checking whether to diagnose an initialized "extern" variable,Douglas Gregor2010-04-221-1/+5
| | | | | | | look for the const on the base type rather than on the top-level type. Fixes PR6495 properly. llvm-svn: 102066
* Record nested-name-specifiers of when we createDouglas Gregor2010-04-221-0/+1
| | | | | | elaborated-type-specifiers. Patch by Enea Zaffanella! llvm-svn: 102065
* Re-land the patch that merges two diagnostics into one now that it passes ↵Anders Carlsson2010-04-224-23/+19
| | | | | | self-host :) llvm-svn: 102050
* Suppress compiler warning.Daniel Dunbar2010-04-221-1/+1
| | | | llvm-svn: 102047
* IRgen: Set alignment correctly on bit-field accesses.Daniel Dunbar2010-04-221-4/+4
| | | | llvm-svn: 102046
* IRgen: Rewrite bit-field access policy to not access data beyond the bounds ↵Daniel Dunbar2010-04-221-39/+83
| | | | | | | | | | | | of the structure, which we also now verify as part of the post-layout consistency checks. - This fixes some pedantic bugs with packed structures, as well as major problems with -fno-bitfield-type-align. - Fixes PR5591, PR5567, and all known -fno-bitfield-type-align issues. - Review appreciated. llvm-svn: 102045
* IRgen: Fix CGRecordLayout::print to print the bit-field infos in a ↵Daniel Dunbar2010-04-221-1/+14
| | | | | | consistent order. llvm-svn: 102044
* Revert "Unify two diagnostics into one.", it breaks with an assertion ↵Daniel Dunbar2010-04-223-9/+10
| | | | | | failure on bootstrap. llvm-svn: 102043
* Unify two diagnostics into one.Anders Carlsson2010-04-223-10/+9
| | | | llvm-svn: 102040
OpenPOWER on IntegriCloud