summaryrefslogtreecommitdiffstats
path: root/clang/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* Implement C++ builtin operator candidates for vector types.Douglas Gregor2010-05-192-18/+91
| | | | llvm-svn: 104105
* Fix a GCC warning about inline functions not being defined. Until r104081, onlyChandler Carruth2010-05-191-3/+3
| | | | | | | | | 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. llvm-svn: 104104
* Fix an obvious goof that rjmccall found by inspection. No testcase, suggestionsChandler Carruth2010-05-191-1/+1
| | | | | | welcome for one. llvm-svn: 104101
* Misc. fixes to bring Objetive-C++'s handling ofFariborz Jahanian2010-05-182-2/+12
| | | | | | | gc attributes to be inline with Objective-C (for radar 7925141). llvm-svn: 104084
* Protect isIntegerConstantExpr from seeing type- or value-dependentDouglas Gregor2010-05-183-16/+32
| | | | | | expressions in attributes, pragmas. llvm-svn: 104083
* Implement C++ support for vector and extended vector types. ThisDouglas Gregor2010-05-183-8/+79
| | | | | | | | | | 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>. llvm-svn: 104081
* Teach CursorVisitor about duplicate ObjCPropertyDecls that can arise because ↵Ted Kremenek2010-05-182-4/+18
| | | | | | | | | | 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>. llvm-svn: 104055
* Add support for Microsoft's __thiscall, from Steven Watanabe!Douglas Gregor2010-05-1810-4/+30
| | | | llvm-svn: 104026
* Correctly initialize bases with member pointers. This should fix PR6441 but ↵Anders Carlsson2010-05-182-14/+139
| | | | | | that test case is a bit weird and I'd like to investigate further before closing that bug. llvm-svn: 104025
* Give a slight edge to the context-sensitive keyword 'super' overDouglas Gregor2010-05-181-1/+20
| | | | | | | | | 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. llvm-svn: 104023
* Tweak typo-correction logic a bit regarding "super", so that weDouglas Gregor2010-05-184-5/+12
| | | | | | | | | 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. llvm-svn: 104022
* Permit Objective C object pointers to be const_casted.John McCall2010-05-182-1/+13
| | | | llvm-svn: 104019
* Switch over the tablegen to use much prettier range technologyAlexis Hunt2010-05-182-4/+4
| | | | | | | Also rename ABSTRACT to ABSTRACT_STMT, in keeping with the other .def files llvm-svn: 104017
* "The attached patch allows clang to find the headersDouglas Gregor2010-05-181-9/+33
| | | | | | | for Visual Studio 2010. It also adds a registry search for the Express edition,", from Steven Watanabe! llvm-svn: 104015
* I hate this commit.Douglas Gregor2010-05-181-70/+33
| | | | | | | | | | | | | | | | | | | | | 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. llvm-svn: 104014
* Keep track of the LLVM field numbers for non-virtual bases.Anders Carlsson2010-05-182-4/+25
| | | | llvm-svn: 104013
* Start laying out bases as individual fields. We still use ugly i8 arrays but ↵Anders Carlsson2010-05-181-14/+61
| | | | | | this is a step in the right direction. llvm-svn: 104012
* Add CodeGenTypes::ContainsPointerToDataMember overload that takes a ↵Anders Carlsson2010-05-182-6/+15
| | | | | | CXXRecordDecl. llvm-svn: 104011
* If a switch condition is constant, don't warn about missing enum cases.John McCall2010-05-181-18/+69
| | | | | | | | If a switch condition is constant, warn if there's no case for it. Constant switch conditions do come up in reasonable template code. llvm-svn: 104010
* Add option '-analyzer-max-loop', which specifies the maximum Zhongxing Xu2010-05-183-3/+3
| | | | | | number of times the analyzer will go through a loop. llvm-svn: 104007
* Teach the ObjC mangler to ignore member pointers just like gcc does.John McCall2010-05-171-0/+5
| | | | llvm-svn: 104001
* Add a hack to silence warnings about failing to return from functions afterChandler Carruth2010-05-171-0/+13
| | | | | | a temporary with a noreturn destructor has been created. Fixes PR6884 for now. llvm-svn: 104000
* Instantiate attributes on typedefs. This is a quick fix for PR7148,Douglas Gregor2010-05-171-0/+1
| | | | | | | when we really need a proper audit of our handling of attributes in templates. llvm-svn: 103999
* Comments and assorted cleanups for the Objective C type AST.John McCall2010-05-171-4/+0
| | | | llvm-svn: 103986
* Clean up some more uses of getAs<ObjCInterfaceType>() that Fariborz pointedJohn McCall2010-05-176-28/+28
| | | | | | out. The remaining ones are okay. llvm-svn: 103973
* Fix an ambiguous else warning from GCC by adding some much needed curlies.Chandler Carruth2010-05-171-2/+3
| | | | llvm-svn: 103972
* robustify the conflict marker stuff. Don't add 7 twice, which wouldChris Lattner2010-05-171-1/+2
| | | | | | | | | | | | | | | | | | | | | 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 "<<<<<<<<<<" llvm-svn: 103968
* Correctly generate IR for ObjC messages sends to protocol-qualified types.John McCall2010-05-171-4/+5
| | | | | | Fixes rdar://problem/7992749 llvm-svn: 103965
* Teach ASTContext::getUnqualifiedArrayType() how to look throughDouglas Gregor2010-05-171-5/+14
| | | | | | | typedefs. As a drive-by, teach hit how to build VLA types, since those will eventually be supported in C++. llvm-svn: 103958
* mutable is a storage class that can follow a class/struct/union definition. ↵Douglas Gregor2010-05-171-0/+1
| | | | | | Fixes PR7153 llvm-svn: 103954
* Don't attempt to poke into an invalid field's class typeFariborz Jahanian2010-05-171-1/+2
| | | | | | | to mark its destructors as referenced which may cause a crash. Fixes radar 7896920 llvm-svn: 103953
* Diagnose a redefinition error when there are two instantiations of friendDouglas Gregor2010-05-171-1/+29
| | | | | | | functions defined inside a class template. Fixes PR6952, the last Boost.Units failure. llvm-svn: 103952
* Determine when the instantiation of a friend function defined inside aDouglas Gregor2010-05-173-8/+24
| | | | | | | class template conflicts with an existing (non-template) definition. This is another part of PR6952. llvm-svn: 103948
* IRgen: Remove dead function.Daniel Dunbar2010-05-171-17/+0
| | | | llvm-svn: 103945
* C++/Darwin/i386 ABI: Fix some problems with empty record handling.Daniel Dunbar2010-05-171-3/+20
| | | | | | | | - Check bases as part of isEmptyRecord(). - C++ record fields are never empty in the Itanium ABI. llvm-svn: 103944
* C++98/03 [temp.friend]p4 requires that inline function definitionsDouglas Gregor2010-05-171-0/+23
| | | | | | | | 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. llvm-svn: 103943
* Ensure that destructors are called for NRVO'd objects when theDouglas Gregor2010-05-173-3/+44
| | | | | | | function does not return. Thanks to Eli for pointing out this corner case. llvm-svn: 103941
* Pick the correct personality function based on the language. This prevents ↵David Chisnall2010-05-171-25/+26
| | | | | | | | link failures when C/ObjC code uses __attribute__((cleanup())) (previously this was inserting references to two libstc++ symbols; the personality function and the __terminate() function). This is still probably wrong for Objective-C++ and adds a couple of lines in CGException that should probably be in the CGObjCRuntime subclass. The personality function is now only looked up in one place in CGException though, so this should be easier to fix in the future. llvm-svn: 103938
* PR7117: Make sure we don't lose the calling convention for K&R-styleEli Friedman2010-05-171-1/+2
| | | | | | | definitions. llvm-svn: 103932
* when code completing inside a C-style block comment, don't emit errors aboutChris Lattner2010-05-161-2/+3
| | | | | | | | a missing */ since we truncated the file. This fixes rdar://7948776 llvm-svn: 103913
* Moved clang-builtin include dir position to immediately precede C includes.mike-m2010-05-161-21/+22
| | | | | | This aligns with how gcc compiler does things. llvm-svn: 103912
* Correctly diagnose array 'new' with initialization arguments when the new ↵Anders Carlsson2010-05-161-1/+1
| | | | | | type is a typedef to an array type. llvm-svn: 103909
* When the type-id or new-type-id of a C++ "new" expression is a typedefDouglas Gregor2010-05-161-3/+12
| | | | | | | of an array type, use the outermost array bound as the number of elements to allocate. Fixes PR7147. llvm-svn: 103908
* Don't emit any fallthrough / missing-noreturn warnings if we can'tJohn McCall2010-05-161-5/+11
| | | | | | compute a CFG for a function. llvm-svn: 103905
* When constant folding reference variables with an initializer to theChandler Carruth2010-05-161-0/+4
| | | | | | | | initializer, don't fold paramters. Their initializers are just default arguments which can be overridden. This fixes some spectacular regressions due to more things making it into the constant folding. llvm-svn: 103904
* fix rdar://7985267 - Don't emit an error about a non-pod argumentChris Lattner2010-05-164-10/+17
| | | | | | passed to va_start, it doesn't actually pass it. llvm-svn: 103899
* Emit a type record for TYPE_OBJC_OBJECT in the PCH file. I'm notJohn McCall2010-05-161-0/+1
| | | | | | entirely sure what this does, to be honest. llvm-svn: 103895
* Avoid doing two switches in TypeLoc's initialize() loop. The optimizerJohn McCall2010-05-161-3/+14
| | | | | | | can probably do this for us, but it's actually somewhat nicer to write it out here. llvm-svn: 103893
* When initializing thread-safe statics, put the call toDouglas Gregor2010-05-163-19/+76
| | | | | | | | | | | | | __cxa_guard_abort along the exceptional edge into (in effect) a nested "try" that rethrows after aborting. Fixes PR7144 and the remaining Boost.ProgramOptions failures, along with the regressions that r103880 caused. The crucial difference between this and r103880 is that we now follow LLVM's little dance with the llvm.eh.exception and llvm.eh.selector calls, then use _Unwind_Resume_or_Rethrow to rethrow. llvm-svn: 103892
* Revert r103880 (thread-safe static initialization w/ exceptions),Douglas Gregor2010-05-163-44/+20
| | | | | | because it's causing strange linker errors. Unfixes PR7144. llvm-svn: 103890
OpenPOWER on IntegriCloud