summaryrefslogtreecommitdiffstats
path: root/clang/lib
Commit message (Collapse)AuthorAgeFilesLines
* Include assembler label for functions in the XML dumpJoerg Sonnenberger2011-05-131-0/+2
| | | | llvm-svn: 131310
* Fix copy constructor deletion detection with array types.Alexis Hunt2011-05-131-3/+10
| | | | | | This fixes PR9910 llvm-svn: 131309
* Introduce __has_extension macroPeter Collingbourne2011-05-131-6/+41
| | | | | | | | | | | | | | | __has_extension is a function-like macro which takes the same set of feature identifiers as __has_feature. It evaluates to 1 if the feature is supported by Clang in the current language (either as a language extension or a standard language feature) or 0 if not. At the same time, add support for the C1X feature identifiers c_generic_selections (renamed from generic_selections) and c_static_assert, and document them. Patch by myself and Jean-Daniel Dupas. llvm-svn: 131308
* Define __ARM_NEON__ in both ARM and Thumb modes. Radar 9431992.Bob Wilson2011-05-131-3/+3
| | | | llvm-svn: 131301
* Remove the 'unaligned load' builtins now that they're no longer used in the ↵Bill Wendling2011-05-131-13/+0
| | | | | | *mmintrin.h files. llvm-svn: 131300
* Produce UTF-8 strings with -fconstant-string-classFariborz Jahanian2011-05-131-21/+15
| | | | | | -fno-constant-cfstrings. Patch by Jonathan Schleifer. llvm-svn: 131298
* refactor CheckForwardProtocolDeclarationForCircularDependency returnsFariborz Jahanian2011-05-131-8/+11
| | | | | | 'true' on detecting protocol cycles. No functionality change. llvm-svn: 131297
* Defaulting copy constructors now works reasonably well.Alexis Hunt2011-05-132-39/+328
| | | | | | One more special member to go llvm-svn: 131287
* Refactoring of constant expression evaluatorPeter Collingbourne2011-05-133-340/+243
| | | | | | | | | This introduces a generic base class for the expression evaluator classes, which handles a few common expression types which were previously handled separately in each class. Also, the expression evaluator now uses ConstStmtVisitor. llvm-svn: 131281
* Add 'may_alias' attribute. Noticed by Eli.Bill Wendling2011-05-132-3/+3
| | | | llvm-svn: 131278
* When determining whether we can make a declaration into a globalDouglas Gregor2011-05-135-20/+19
| | | | | | | constant, also consider whether it's a class type that has any mutable fields. If so, it can't be a global constant. llvm-svn: 131276
* Teach the template parameter dependency checker used when matchingDouglas Gregor2011-05-131-0/+4
| | | | | | | | template parameter lists to scope specifiers for friend declarations about injected class name types. Fixes the g++.dg/template/memfriend5.C regression in the GCC testsuite. llvm-svn: 131272
* Implement the __is_trivially_copyable type traitAlexis Hunt2011-05-137-0/+42
| | | | llvm-svn: 131270
* Represent the unaligned loads natively. These are converted into a call to theBill Wendling2011-05-132-3/+12
| | | | | | correct unaligned load. llvm-svn: 131268
* Implement defaulting of destructors.Alexis Hunt2011-05-125-26/+59
| | | | llvm-svn: 131260
* HrmAlexis Hunt2011-05-124-50/+226
| | | | llvm-svn: 131259
* After issuing diagnostics on circular protocol list,Fariborz Jahanian2011-05-121-4/+6
| | | | | | | | don't build circular AST in protocol's protocol list when user code has introduced it. Indexer and other clients may crash. // rdar://9221614 llvm-svn: 131254
* Doug convinced me that DW_AT_APPLE_objc_complete_type is more appropriate name.Devang Patel2011-05-121-1/+1
| | | | | | s/DW_AT_APPLE_objc_class_extension/DW_AT_APPLE_objc_complete_type/g llvm-svn: 131245
* Do not add AT_APPLE_objc_class_extension attribute if @implementation is not ↵Devang Patel2011-05-121-2/+1
| | | | | | seen. llvm-svn: 131242
* enable __has_feature(is_standard_layout)Howard Hinnant2011-05-121-0/+1
| | | | llvm-svn: 131240
* Use DW_AT_APPLE_objc_class_extension attribute to identify interfaces that ↵Devang Patel2011-05-121-1/+6
| | | | | | | | represent class extension. Radar 9423077. llvm-svn: 131239
* LLVM doesn't always optimize away the four loads from this:Bill Wendling2011-05-123-2/+4
| | | | | | | | | | (__m128){ p[0], p[1], p[2], p[3] } which produces really bad code. This could be done in instcombine, but it's probably better to do it in the front-end instead. <rdar://problem/9424836> llvm-svn: 131237
* Properly parse the 'default' and 'delete' keywords.Alexis Hunt2011-05-126-68/+201
| | | | | | | | | | | | | | | | | They are actually grammatically considered definitions and parsed accordingly. This fixes the outstanding bugs regarding defaulting functions after their declarations. We now really nicely diagnose the following construct (try it!) int foo() = delete, bar; Still todo: Defaulted functions other than default constructors Test cases (including for the above construct) llvm-svn: 131228
* Make it so that we actually generate definitions for explicitlyAlexis Hunt2011-05-123-4/+5
| | | | | | | | | | defaulted default constructors. As it happens, making sure that we handle out-of-line defaulted functions properly will involved making sure that we actually parse them correctly, so that's coming after. llvm-svn: 131224
* Implement deletion of explicitly defaulted default constructors.Alexis Hunt2011-05-122-31/+15
| | | | | | | We still don't parse out-of-line defaults correctly, which is needed to get the full effect out of this patch. llvm-svn: 131223
* Fix crasher spotted in IWYU.Nick Lewycky2011-05-121-1/+2
| | | | llvm-svn: 131222
* PR9899: handle pseudo-destructors correctly in noexcept() expressions.Eli Friedman2011-05-121-1/+4
| | | | llvm-svn: 131220
* Make this code more resilient against catch variables which need cleanups.John McCall2011-05-121-3/+4
| | | | llvm-svn: 131215
* Fix typo in comment.Nick Lewycky2011-05-121-1/+1
| | | | llvm-svn: 131212
* Fix PR9902: correctly substitute alias templates within the template in ↵Richard Smith2011-05-121-0/+3
| | | | | | which they are defined: provide an empty list of arguments for each containing template context during substitution. llvm-svn: 131211
* Implement CWG1170, which makes access-control errors into templateDouglas Gregor2011-05-112-3/+7
| | | | | | | argument deduction failures. Only implemented in C++0x, since this is a significant change in behavior from C++98/03. llvm-svn: 131209
* When checking for the necessary 'template<>' headers based on theDouglas Gregor2011-05-111-4/+10
| | | | | | | | | | nested of an out-of-line declaration, only require a 'template<>' header for each enclosing class template that hasn't been previously specialized; previously, we were requiring 'template<>' for enclosing class templates and members of class templates that hadn't been previously specialized. Fixes <rdar://problem/9422013>. llvm-svn: 131207
* Commit some missing changes to the previous patch.Alexis Hunt2011-05-112-4/+16
| | | | | | This means we get C++0x jump-across-intializer semantics correct. llvm-svn: 131204
* Implement implicit deletion of default constructors.Alexis Hunt2011-05-116-15/+193
| | | | | | | | Yes, I'm aware that the diagnostics are awful. Tests to follow. llvm-svn: 131203
* In Microsoft mode, allow conversion from pointer to integral type no matter ↵Francois Pichet2011-05-111-3/+5
| | | | | | | | | | | what size the integral type is. Necessary to parse MFC code. Example: void f(char *ptr) { char var = (char)ptr; } llvm-svn: 131201
* Implenment #pack pragma and ms_struct attribute layout.Fariborz Jahanian2011-05-111-1/+47
| | | | | | Concludes // radar://8823265. llvm-svn: 131188
* Teach CFG building how to deal with CXXMemberCallExprs and BoundMemberTy,John McCall2011-05-112-16/+18
| | | | | | | then teach -Wreturn-type to handle the same. Net effect: we now correctly handle noreturn attributes on member calls in the CFG. llvm-svn: 131178
* PR9882: Fix noexcept to deal with dependent new, delete, calls, andEli Friedman2011-05-111-17/+24
| | | | | | dynamic_cast correctly. llvm-svn: 131177
* In Microsoft mode, allow pure specifier (=0) on inline functions declared at ↵Francois Pichet2011-05-113-4/+21
| | | | | | | | | | | | | class scope. This removes 2 errors when parsing MFC code with clang Example: class A { virtual void f() = 0 { } } llvm-svn: 131175
* Use a heralded conversion to bool in inline-asm constraints.John McCall2011-05-101-1/+3
| | | | llvm-svn: 131170
* Fix crash in -Wuninitialized when using switch statments whose condition is ↵Ted Kremenek2011-05-101-5/+9
| | | | | | a logical operation. llvm-svn: 131158
* Re-do R131114 without breaking code.Alexis Hunt2011-05-103-14/+15
| | | | | | | | | I've edited one diagnostic which would print "copy constructor" for copy constructors and "constructor" for any other constructor. If anyone is extremely enamored with this, it can be reinstated with a simple boolean flag rather than calling getSpecialMember, which is inappropriate. llvm-svn: 131143
* Support pack pragma and ms_struct attributes. // rdar://8823265Fariborz Jahanian2011-05-101-0/+7
| | | | llvm-svn: 131142
* Elide __label__ declarations from the CFG. This resolves a crash in ↵Ted Kremenek2011-05-101-0/+5
| | | | | | CFGRecStmtDeclVisitor (crash in static analyzer). llvm-svn: 131141
* Reimplement Sema::MatchTemplateParametersToScopeSpecifier() based onDouglas Gregor2011-05-103-151/+278
| | | | | | | | | | | | | | | | | | the semantic context referenced by the nested-name-specifier rather than the syntactic form of the nested-name-specifier. The previous incarnation was based on my complete misunderstanding of C++ [temp.expl.spec]. The latest C++0x working draft clarifies the requirements here, and this rewrite is intended to follow that. Along the way, improve source location information in the diagnostics. For example, if we report that a specific type needs or doesn't need a 'template<>' header, we dig out that type in the nested-name-specifier and highlight its range. Fixes: PR5907, PR9421, PR8277, PR8708, PR9482, PR9668, PR9877, and <rdar://problem/9135379>. llvm-svn: 131138
* Don't strlen() every file before parsing it.Eli Friedman2011-05-101-1/+2
| | | | llvm-svn: 131132
* Revert 131114. This fixes PR9884.Rafael Espindola2011-05-102-11/+8
| | | | llvm-svn: 131126
* Further implement defaulting constructors.Alexis Hunt2011-05-102-151/+176
| | | | | | | | | | | | | Focus is on default constructors for the time being. Currently the exception specification and prototype are processed correctly. Codegen might work but in all likelihood doesn't. Note that due to an error, out-of-line defaulting of member functions is currently impossible. It will continue to that until I muster up the courage to admit that I secretly pray to epimetheus and that I need to rework the way default gets from Parse -> Sema. llvm-svn: 131115
* The last of the trivial constructor changes, make CXXSpecialMemberAlexis Hunt2011-05-102-8/+11
| | | | | | reflect our new, more accurate AST. llvm-svn: 131114
* Ignore const/volatile/restrict qualifiers on anonymous structs andDouglas Gregor2011-05-091-0/+18
| | | | | | unions. Fixes PR8326. llvm-svn: 131109
OpenPOWER on IntegriCloud