summaryrefslogtreecommitdiffstats
path: root/clang
Commit message (Collapse)AuthorAgeFilesLines
* [OPENMP] Fixed problem with temp removal on some platforms in codegen for ↵Alexey Bataev2014-05-073-12/+7
| | | | | | '#pragma omp parallel' llvm-svn: 208162
* PR19562: Fix memory leak when ObjC interface types cause the creation of ↵David Blaikie2014-05-071-1/+5
| | | | | | further interfaces. llvm-svn: 208161
* Fixing tests to account for LLVM r208159.David Blaikie2014-05-072-5/+5
| | | | llvm-svn: 208160
* [OPENMP] Temporarily disable test parallel_codegen.cppAlexey Bataev2014-05-071-0/+2
| | | | llvm-svn: 208156
* [analyzer] Use a lazily-initialized BugType in ObjCSelfInitChecker.Jordan Rose2014-05-071-10/+6
| | | | | | Follow-up to Nico's leak-stopping patch in r208110. llvm-svn: 208155
* [analyzer] Functions marked __attribute__((const)) don't modify any memory.Jordan Rose2014-05-072-0/+34
| | | | | | | | | This applies to __attribute__((pure)) as well, but 'const' is more interesting because many of our builtins are marked 'const'. PR19661 llvm-svn: 208154
* If an instantiation of a template is required to be a complete type, checkRichard Smith2014-05-0711-42/+120
| | | | | | | whether the definition of the template is visible rather than checking whether the instantiated definition happens to be in an imported module. llvm-svn: 208150
* Clean up some existing keyword tests in the test/Lexer directory by using theYunzhong Gao2014-05-074-19/+34
| | | | | | | | pre-defined __is_identifier() macro. Differential Revision: http://reviews.llvm.org/D3460 llvm-svn: 208147
* Try harder to ensure a strict weak ordering of overload candidates thatKaelyn Takata2014-05-072-6/+23
| | | | | | have arity mismatches. llvm-svn: 208146
* Rename "secondary initializer" -> "convenience initializer" in the warnings, ↵Argyrios Kyrtzidis2014-05-062-9/+9
| | | | | | which is a more correct and consistent term. llvm-svn: 208142
* AST: Update reference temporary manglingDavid Majnemer2014-05-0610-161/+163
| | | | | | | | | | | | | | | Summary: Update our mangling to match the discussion on cxx-abi-dev. This involves using a seq-id instead of an optional number. Reviewers: rsmith Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D3631 llvm-svn: 208140
* Add testcase for r208062.Nick Lewycky2014-05-061-1/+11
| | | | llvm-svn: 208138
* tblgen: Modularize the diagnostic emitterTobias Grosser2014-05-061-88/+198
| | | | | | | | | | | | | | | | | | | Replace a large monolitic function, with per-table functions which all nicely fit on my screen. I also added documentation to each function that describes what kind of tables are generated and which information is contained and switched to range based for loops. Finally, I run clang-format over the moved code. I spent a significant amount of time to understand this code when reasoning about possible extensions to the diagnostic interface to support 'remark' diagnostics. This change will definitely help such an implementation, but already by itself it will save other people a lot of time when trying to understand this functionality. Even though the patch touches the full function, it is mostly mechanical. No functional change intended. The generated tblgen files are identical. llvm-svn: 208136
* Include translation unit filename in global ctor symbol names.Nico Weber2014-05-069-17/+30
| | | | | | | | | | | | | | | | | This makes it easier to see where a global ctor comes from, and it also makes ASan's init order analyzer output easier to understand. gcc does this too, but only in -fPIC mode for some reason. Don't do this for constructors with explicit init priority. Also prepend "sub_" before the 'I', that way regular constructors stay lexicographically after symbols with init priority (because ord('s') > ord('I')). gold seems to ignore the name of constructor symbols, and ld only looks at the symbol if it includes an init priority, which this patch doesn't change. Before: __GLOBAL_I_a Now: __GLOBAL_sub_I_myfile.cc llvm-svn: 208128
* Reapply: DebugInfo: Emit the definition of enums when the definition ↵David Blaikie2014-05-066-1/+105
| | | | | | | | | | | | | | | | | | | preceeds the declaration and initial use. Reverting r208106 to reapply r208065 with a fix for the regression. The issue was that the enum tried to be built even if the declaration hadn't been constructed for debug info - presenting problems for enum templates and typedefs of enums with names for linkage purposes. Original commit message: This regressed a little further 208055 though it was already a little broken. While the requiresCompleteType optimization should be implemented here. Future (possibly near future) work. llvm-svn: 208114
* Fix leak in ObjCSelfInitChecker, found by LSan.Nico Weber2014-05-061-19/+18
| | | | | | | | BugReport doesn't take ownership of the bug type, so let the checker own the the bug type. (Requires making the bug type mutable, which is icky, but which is also what other checkers do.) llvm-svn: 208110
* Fix a leak found by LSan: ConsumedBlockInfo owns its StateMapsArray entries.Nico Weber2014-05-061-1/+2
| | | | | | | | | (I tried converting StateMapsArray to a vector<unique_ptr> and changing the types of getInfo() and addInfo() to take unique_ptrs. This mostly worked, except for the three-argument form of addInfo() which I found confusing enough that I went with this simpler fix for now.) llvm-svn: 208108
* Revert "DebugInfo: Emit the definition of enums when the definition preceeds ↵David Blaikie2014-05-065-87/+1
| | | | | | | | | | | the declaration and initial use." This is breaking the compiler-rt build. Reverting while I investigate/fix. This reverts commit r208065. llvm-svn: 208106
* Add driver support for AArch64 Fedora.Tilmann Scheller2014-05-067-2/+21
| | | | | | Reviewed by Eric Christopher. llvm-svn: 208105
* Update comment for ObjCImplementationDecl's handling of instance variables.Jordan Rose2014-05-061-4/+7
| | | | | | No functionality change. llvm-svn: 208099
* clang-format: [JS] Keep space after closure style comments.Daniel Jasper2014-05-062-2/+6
| | | | | | | | | | Before: var x = /** @type {foo} */ (bar); After: var x = /** @type {foo} */(bar); llvm-svn: 208093
* clang-format: [JS] Keep space between 'return' and '['.Daniel Jasper2014-05-062-3/+8
| | | | llvm-svn: 208090
* clang-format: [JS] Don't indent in goog.scope blocks.Daniel Jasper2014-05-062-2/+27
| | | | | | | | | | | | | | | | Before: goog.scope(function() { var x = a.b; var y = c.d; }); // goog.scope After: goog.scope(function() { var x = a.b; var y = c.d; }); // goog.scope llvm-svn: 208088
* [OPENMP] Another one fix for codegen test '#pragma omp parallel'Alexey Bataev2014-05-061-1/+1
| | | | llvm-svn: 208087
* [OPENMP] Fixed test for '#pragma omp parallel' codegenAlexey Bataev2014-05-061-48/+46
| | | | llvm-svn: 208086
* Fixed one issue with castingDinesh Dwivedi2014-05-062-2/+5
| | | | | | | | | | | | Before: (void) SimplifyICmpOperands(Cond, LHS, RHS); After: (void)SimplifyICmpOperands(Cond, LHS, RHS); Differential Revision: http://reviews.llvm.org/D3615 llvm-svn: 208080
* [OPENMP] Temporary disable test for parallel codegenAlexey Bataev2014-05-061-1/+2
| | | | llvm-svn: 208078
* [OPENMP] Initial codegen for '#pragma omp parallel'Alexey Bataev2014-05-0619-38/+762
| | | | llvm-svn: 208077
* [PATCH] [ARM64] Enable alignment control option in front-end for ARM64.Kevin Qin2014-05-063-14/+45
| | | | | | | This patch is to get "-mno-unaligned-access" and "-munaligned-access" work in front-end for ARM64 target. llvm-svn: 208075
* XCore target: fix initialization bug found by MSan Bot.Robert Lytton2014-05-061-0/+1
| | | | llvm-svn: 208072
* Pulled out cast detection in TokenAnnotator into its own functionDinesh Dwivedi2014-05-061-58/+58
| | | | | | | | This is to remove FIXME added in r207964. Differential Revision: http://reviews.llvm.org/D3619 llvm-svn: 208071
* DebugInfo: Emit the definition of enums when the definition preceeds the ↵David Blaikie2014-05-065-1/+87
| | | | | | | | | | | | declaration and initial use. This regressed a little further 208055 though it was already a little broken. While the requiresCompleteType optimization should be implemented here. Future (possibly near future) work. llvm-svn: 208065
* [C++11] Use 'nullptr'Craig Topper2014-05-06145-1052/+1118
| | | | llvm-svn: 208063
* Fix crash when one overload candidate is a template instead of a function. ↵Nick Lewycky2014-05-061-0/+1
| | | | | | | | | | Patch by Kaelyn Takata. Testcase coming out of creduce will land in a separate commit shortly. Also, it appears that this callback is used even in a SFINAE context where the results are never displayed. llvm-svn: 208062
* [OPENMP] 'proc_bind' clause support - Parsing and sema analysis for OpenMP ↵Alexey Bataev2014-05-0617-14/+249
| | | | | | clause 'proc_bind' llvm-svn: 208060
* PR19598: Ensure temporary metadata nodes used in debug info are destroyed.David Blaikie2014-05-062-40/+34
| | | | | | | | | | | | | | | | | | | CGDebugInfo and DIBuilder were lax in their handling of temporary MDNodes. All temporary nodes need to be deleted, which means they need to be RAUW'd with a permanent node. This was not happening. To ensure this, leverage DIBuilder's new ability to create both permanent and temporary declarations. Ensure all temporary declarations are RAUW'd, even with itself. (DIDescriptor::RAUW handles the case where it is replaced with itself and creates a new, duplicate permanent node to replace itself with) This means that all temporary declarations must be added to the ReplacementMap even if they're never upgraded to definitions - so move the point of insertion into the map to the point of creation of the declarations. llvm-svn: 208055
* Support field references to struct names and c++11 aliases from inline asm.Nico Weber2014-05-062-2/+34
| | | | | | This is in addition to the existing support for typedefs. llvm-svn: 208053
* I fixed this fixme in r208017.Nick Lewycky2014-05-061-2/+1
| | | | llvm-svn: 208027
* www: add a missing HTML open tagAlp Toker2014-05-061-0/+1
| | | | | | This went AWOL in r207995. llvm-svn: 208018
* Build debug info for ObjC interface types at the end of the translation unit ↵David Blaikie2014-05-053-110/+51
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | to ensure all ivars are included. This takes a different approach than the completedType/requiresCompleteType work which relies on AST callbacks to upgrade the type declaration to a definition. Instead, just defer constructing the definition to the end of the translation unit. This works because the definition is never needed by other debug info (so far as I know), whereas the definition of a struct may be needed by other debug info before the end of the translation unit (such as emitting the definition of a member function which must refer to that member function's declaration). If we had a callback for whenever an IVar was added to an ObjC interface we could use that, and remove the need for the ObjCInterfaceCache, which might be nice. (also would need a callback for when it was more than just a declaration so we could get properties, etc). A side benefit is that we also don't need the CompletedTypeCache anymore. Just rely on the declaration-ness of a type to decide whether its definition is yet to be emitted. There's still the PR19562 memory leak, but this should hopefully make that a bit easier to approach. llvm-svn: 208015
* ObjC IVars aren't added when the type isn't emitted after the interface ↵David Blaikie2014-05-051-1/+15
| | | | | | extension llvm-svn: 208014
* During parsing, update the range of the Declarator to include the identifier.Richard Trieu2014-05-051-0/+1
| | | | llvm-svn: 208011
* [Basic/FileManager] Propagate whether a file 'IsVolatile' to the file ↵Argyrios Kyrtzidis2014-05-053-10/+19
| | | | | | | | opening functions. Needs llvm r208007. llvm-svn: 208008
* Add -Wnon-modular-include* optionsBen Langmuir2014-05-0534-38/+240
| | | | | | | | | | | | Warn on non-modular includes in various contexts. -Wnon-modular-include -Wnon-modular-include-in-module -Wnon-modular-include-in-framework-module Where each group is a subgroup of those above it. llvm-svn: 208004
* Simplify replacement map by avoiding duplicate values and ensuring the ↵David Blaikie2014-05-051-15/+9
| | | | | | | | | | | | | values it does contain are necessary. Items were being redundantly added to the replacement map (both when the declaration was created, and then again when its definition was constructed) which caused extra handling to be required when walking the map (as elements may've already been replaced due to prior entries). By avoiding adding the duplicates, the checks in the replacement handling can be replaced with assertions. llvm-svn: 208000
* MS ABI: Emit an error during IRgen on C++ exception handlingReid Kleckner2014-05-052-0/+33
| | | | | | | | | | | | | | | | Currently, users get error messages about RTTI descriptor mangling with no useful source location. This addresses that. Another approach would be to disable C++ exceptions by default in the driver when using the Microsoft C++ ABI. However, this makes it impossible to parse system headers that use exception handling constructs. By delaying the error to IRgen, we can figure out if we actually need to emit code for this construct. Additionally, users who are only interested in building refactoring tools on Windows still get a correct AST without having to add flags. Finally, this is consistent with what we do for SEH. llvm-svn: 207999
* Fix pr19653.Rafael Espindola2014-05-055-11/+41
| | | | | | Warn if an alias requests a section other than the aliasee section. llvm-svn: 207997
* www: remove proprietary dbtree.js script from r96013Alp Toker2014-05-058-22/+1
| | | | | | | | | | | | This minified source code and artwork is copied from a commercial product and carries no license information: dbtree.js (7 kb), 25.03.2014 14:51:32 Purchase and download DBTree now for only $29.75 $9.75 It was used by a small TOC which looks fine now as a plain unordered list. llvm-svn: 207995
* Fix some typosAlp Toker2014-05-054-7/+7
| | | | llvm-svn: 207994
* Small refactoring, no functionality change.Rafael Espindola2014-05-051-3/+4
| | | | llvm-svn: 207991
OpenPOWER on IntegriCloud