summaryrefslogtreecommitdiffstats
path: root/clang/lib
Commit message (Collapse)AuthorAgeFilesLines
* Wrap to 80 columns. No behavior change.Nico Weber2014-07-261-4/+5
| | | | llvm-svn: 214038
* Wrap to 80 columns, no functionality change.Nico Weber2014-07-261-2/+2
| | | | llvm-svn: 214036
* Objective-C. Issue more warning diagnostic when certainFariborz Jahanian2014-07-261-9/+12
| | | | | | | | properties are not synthesized in property auto-synthesis, as it can potentiall lead to runtime errors. rdar://17774815 llvm-svn: 214032
* [modules] Improve abbreviations for C++:Richard Smith2014-07-263-46/+169
| | | | | | | | | | | | | | | | | * Add abbreviation for CXXMethodDecl and for FunctionProtoType. These come up a *lot* in C++ modules. * Allow typedef declarations to use the abbreviation if they're class members, or if they're used. In passing, add more record name records for Clang AST node kinds. The downside is that we had already used up our allotment of 12 abbreviations, so this pushes us to an extra bit on each record to support the extra abbrev kinds, which increases file size by ~1%. This patch *barely* pays for that through the other improvements, but we've got room for another 18 abbrevs, so we should be able to make it much more profitable with future changes. llvm-svn: 214024
* Parse: Don't crash on trailing whitespace before EOFDavid Majnemer2014-07-261-1/+4
| | | | | | | | | | | | | | | Parser::ParseDeclarationSpecifiers eagerly updates the source range of the DeclSpec with the current token position. However, it might not consume any more tokens. Fix this by only setting the start of the range, not the end. This way the SourceRange will be invalid if we don't consume any more tokens. This fixes PR20413. Differential Revision: http://reviews.llvm.org/D4646 llvm-svn: 214018
* If a template argument is non-evaluable expression, use the profile ID to seeRichard Trieu2014-07-261-7/+8
| | | | | | if the two arguments are equal. llvm-svn: 214008
* MS ABI: Use musttail for vtable thunks that pass arguments by valueReid Kleckner2014-07-264-40/+78
| | | | | | | | | | | | | This moves some memptr specific code into the generic thunk emission codepath. Fixes PR20053. Reviewers: majnemer Differential Revision: http://reviews.llvm.org/D4613 llvm-svn: 214004
* Remove an extra parameter and C++11 for loop-ify this codeReid Kleckner2014-07-262-11/+8
| | | | llvm-svn: 214003
* Add a missing close quote in "while building module 'Foo:" diagnostic.Jordan Rose2014-07-261-1/+1
| | | | | | | This isn't a real diagnostic kind, only a location note, and this form isn't even used if the SourceManager can provide a valid presumed location. But still. llvm-svn: 214002
* R600: Add processor type for MullinsTom Stellard2014-07-261-0/+1
| | | | llvm-svn: 213999
* Improve -UNDEBUG binary size. We don't need a different assert fail message forRichard Smith2014-07-261-2/+2
| | | | | | each different enum value here. llvm-svn: 213996
* Use -enable-global-merge option to match llvm r210639. <rdar://problem/17803206>Bob Wilson2014-07-261-1/+1
| | | | | | | | | llvm revision 210639 renamed the -global-merge backend option to -enable-global-merge. This change simply updates clang to match that. Patch by Steven Wu! llvm-svn: 213993
* MS ABI: Ensure 'this' is first for byval+sret methodsReid Kleckner2014-07-261-21/+34
| | | | | | | | | Previously we were building up the inalloca struct in the usual pattern of return type followed by arguments. However, on Windows, 'this' always precedes the 'sret' parameter, so we need to insert it into the struct first as a special case. llvm-svn: 213990
* MS ABI: Don't push destructor cleanups for aggregate parameters in thunksReid Kleckner2014-07-254-11/+18
| | | | | | | | The target method of the thunk will perform the cleanup. This can't be tested in 32-bit x86 yet because passing something by value would create an inalloca, and we refuse to generate broken code for that. llvm-svn: 213976
* Now that PIC generation on PPC32 is supported, hook up linking supportJoerg Sonnenberger2014-07-252-2/+4
| | | | | | for NetBSD. llvm-svn: 213972
* Revert r213437Warren Hunt2014-07-255-70/+31
| | | | | | | We no longer plan to use __except_hander3 and rather use custom personality functions per __try block. llvm-svn: 213971
* Objective-C. Warn if protocol used in an @protocolFariborz Jahanian2014-07-252-0/+11
| | | | | | | expression is a forward declaration as this results in undefined behavior. rdar://17768630 llvm-svn: 213968
* Return a StringRef in getDefaultUniversalArchName.Rafael Espindola2014-07-251-1/+1
| | | | | | Patch by Stephen Drake. llvm-svn: 213964
* [Driver][Mips] Remove "fp64" directories from the mips-mti-linux-gnu toolchainSimon Atanasyan2014-07-251-15/+0
| | | | | | | directories description. Released version of this toolchain has not separate libraries for -mfp64 command line option. llvm-svn: 213937
* Revert part of r206963James Molloy2014-07-251-0/+27
| | | | | | | | Specifically the part where we removed a warning to be compatible with GCC, which has been widely regarded as a bad idea. I'm not quite happy with how obtuse this warning is, especially in the fairly common case of a 32-bit integer literal, so I've got another patch awaiting review that adds a fixit to reduce confusion. llvm-svn: 213935
* [OPENMP] Improved codegen for outlined functions for 'parallel' directives.Alexey Bataev2014-07-251-6/+25
| | | | llvm-svn: 213927
* [OPENMP] Improved DSA processing of the loop control variables for loop ↵Alexey Bataev2014-07-251-12/+24
| | | | | | directives. llvm-svn: 213925
* [modules] Substantially improve handling of #undef:Richard Smith2014-07-254-149/+215
| | | | | | | | | | * Track override set across module load and save * Track originating module to allow proper re-export of #undef * Make override set properly transitive when it picks up a #undef This fixes nearly all of the remaining macro issues with self-host. llvm-svn: 213922
* clang-cl: Merge adjacent single-line __asm blocksEhsan Akhgari2014-07-251-9/+20
| | | | | | | | | | | | | | | | | Summary: This patch extends the __asm parser to make it keep parsing input tokens as inline assembly if a single-line __asm line is followed by another line starting with __asm too. It also makes sure that we correctly keep matching braces in such situations by separating the notions of how many braces we are matching and whether we are in single-line asm block mode. Reviewers: rnk Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D4598 llvm-svn: 213916
* PR20445: Properly transform the initializer in a CXXNewExpr rather than runningRichard Smith2014-07-252-18/+9
| | | | | | | it through the normal TreeTransform logic for Exprs (which will strip off implicit parts of the initialization and never re-create them). llvm-svn: 213913
* Pass the PrintingPolicy when converting types to strings in template typeRichard Trieu2014-07-251-5/+6
| | | | | | | diffing. This removes extra "struct"/"class" in the type names and gives "bool" instead of "_Bool" for booleans. llvm-svn: 213912
* Print "(default)" for default template template arguments to match theRichard Trieu2014-07-241-0/+1
| | | | | | printing of other types. llvm-svn: 213902
* Add support for #pragma nounroll.Mark Heffernan2014-07-242-12/+33
| | | | llvm-svn: 213885
* Improving the "integer constant too large" diagnostics based on post-commit ↵Aaron Ballman2014-07-243-11/+10
| | | | | | feedback from Richard Smith. Amends r213657. llvm-svn: 213865
* MachO: use "arm64" as the triple name in modules.Tim Northover2014-07-241-0/+11
| | | | | | | | | Current versions of ld64 can't cope with "aarch64" being stored. I'm fixing that, but in the transitionary period we'll need to still emit "arm64". rdar://problem/17783765 llvm-svn: 213852
* [OPENMP] Initial parsing and sema analysis for clause 'seq_cst' of 'atomic' ↵Alexey Bataev2014-07-248-1/+36
| | | | | | directive. llvm-svn: 213846
* [OPENMP] Initial parsing and sema analysis for clause 'capture' in 'atomic' ↵Alexey Bataev2014-07-248-8/+55
| | | | | | directive. llvm-svn: 213842
* MS ABI: -fno-rtti-data wasn't data-free enoughDavid Majnemer2014-07-241-1/+3
| | | | | | | While -fno-rtti-data would correctly avoid referencing the RTTI complete object locator in the VFTable itself, it would emit them anyway. llvm-svn: 213841
* Add support for nullptr template arguments to template type diffing.Richard Trieu2014-07-241-31/+107
| | | | llvm-svn: 213840
* Simplify MacroInfo lifetime management. We don't need three different functionsRichard Smith2014-07-242-8/+13
| | | | | | to destroy one of these. llvm-svn: 213837
* [OPENMP] Fixed DSA detecting for function parameters: by default they must ↵Alexey Bataev2014-07-241-3/+5
| | | | | | be private. llvm-svn: 213835
* Take the canonical type when forming a canonical template argument withRichard Smith2014-07-241-3/+6
| | | | | | | 'nullptr' value. Fixes profiling of such template arguments to always give the same value. llvm-svn: 213834
* Remove unused Prev pointer from MacroInfo chain.Richard Smith2014-07-242-31/+4
| | | | | | | | Remove pointless MICache: it only ever contained up to 1 object, and was only non-empty when recovering from an error. There's no performance or memory win from maintaining this cache. llvm-svn: 213825
* Replace r213816's fix with a different one. It's not meaningful to callRichard Smith2014-07-231-3/+2
| | | | | | | isOnePastTheEnd on an invalid designator, so assert and push the check into the one caller that wasn't already checking. llvm-svn: 213820
* Add a missing Invalid check to SubobjectDesignator::isOnePastEnd()Reid Kleckner2014-07-231-0/+2
| | | | | | | | | | | The class seems to have an invariant that Entries is non-empty if Invalid is false. It appears this method was previously private, and all internal uses checked Invalid. Now there is an external caller, so check Invalid to avoid array OOB underflow. Fixes PR20420. llvm-svn: 213816
* PR20228: don't retain a pointer to a vector element after the container has ↵Richard Smith2014-07-231-3/+4
| | | | | | been resized. llvm-svn: 213790
* In unroll pragma syntax and loop hint metadata, change "enable" forms to a ↵Mark Heffernan2014-07-233-31/+45
| | | | | | new form using the string "full". llvm-svn: 213771
* Add stopgap option -fmodule-implementation-of <name>Ben Langmuir2014-07-235-3/+23
| | | | | | | | | | | | | | | | | | This flag specifies that we are building an implementation file of the module <name>, preventing importing <name> as a module. This does not consider this to be the 'current module' for the purposes of doing modular checks like decluse or non-modular-include warnings, unlike -fmodule-name. This is needed as a stopgap until: 1) we can resolve relative includes to a VFS-mapped module (or can safely import a header textually and as part of a module) and ideally 2) we can safely do incremental rebuilding when implementation files import submodules. llvm-svn: 213767
* Prevent assert in ASTMatchFinder.Daniel Jasper2014-07-231-1/+1
| | | | | | | | | | | | If nodes without memoization data (e.g. TypeLocs) are bound to specific names, that effectively prevents memoization as those elements cannot be compared effectively. If it is tried anyway, this can lead to an assert as demonstrated in the new test. In the long term, the better solution will be to enable DynTypedNodes without memoization data. For now, simply skip memoization instead. llvm-svn: 213751
* AArch64: update Clang for merged arm64/aarch64 triples.Tim Northover2014-07-2312-72/+20
| | | | | | | | | | | | | | The main subtlety here is that the Darwin tools still need to be given "-arch arm64" rather than "-arch aarch64". Fortunately this already goes via a custom function to handle weird edge-cases in other architectures, and it tested. I removed a few arm64_be tests because that really isn't an interesting thing to worry about. No-one using big-endian is also referring to the target as arm64 (at least as far as toolchains go). Mostly they date from when arm64 was a separate target and we *did* need a parallel name simply to test it at all. Now aarch64_be is sufficient. llvm-svn: 213744
* [mips] -mno-shared should only be given to the assembler when ↵Daniel Sanders2014-07-231-2/+16
| | | | | | | | -fPIC/-fpic/-fPIE/-fpie is not in effect. This fixes compiler recursion on MIPS32r2. llvm-svn: 213741
* [OPENMP] Initial parsing and sema analysis for 'update' clause of 'atomic' ↵Alexey Bataev2014-07-238-2/+46
| | | | | | directive. llvm-svn: 213735
* [Driver][Mips] Restore FIXME comment was removed accidentally.Simon Atanasyan2014-07-231-0/+2
| | | | llvm-svn: 213734
* Add module map entry for ARM ACLE header fileYi Kong2014-07-231-0/+5
| | | | llvm-svn: 213731
* [OPENMP] Initial parsing an sema analysis for 'write' clause of 'atomic' ↵Alexey Bataev2014-07-238-27/+64
| | | | | | directive. llvm-svn: 213728
OpenPOWER on IntegriCloud