summaryrefslogtreecommitdiffstats
path: root/clang
Commit message (Collapse)AuthorAgeFilesLines
...
* unique_ptrify AnalysisConsumer.cpp::CreateUbiVizDavid Blaikie2014-09-051-4/+4
| | | | llvm-svn: 217212
* Remove a use of raw pointer ownership (then non-ownership) in ↵David Blaikie2014-09-051-2/+3
| | | | | | | | | TrimmedGraph::popNextReportGraph (just cleaning up unique_ptr stuff by finding interesting 'reset' calls at the moment) llvm-svn: 217210
* Fix comment indentation.David Blaikie2014-09-051-1/+1
| | | | llvm-svn: 217209
* unique_ptrify ExplodedGraph::trimDavid Blaikie2014-09-053-9/+10
| | | | llvm-svn: 217208
* unique_ptrify the result of ConstraintManagerCreator and StoreManagerCreatorDavid Blaikie2014-09-046-15/+20
| | | | llvm-svn: 217206
* unique_ptrify BugReporter::visitorsDavid Blaikie2014-09-049-97/+77
| | | | llvm-svn: 217205
* clang/test/CXX/drs/dr5xx.cpp: Suppress dr547 also for MinGWHans Wennborg2014-09-041-1/+2
| | | | | | This is a follow-up to r216841. llvm-svn: 217204
* Stop double visiting some expressions during self reference checking.Richard Trieu2014-09-042-5/+23
| | | | | | | | Originally, self reference checking made a double pass over some expressions to handle reference type checking. Now, allow HandleValue to also check reference types, and fallback to Visit for unhandled expressions. llvm-svn: 217203
* Don't allow inline asm statements to reference parameters in naked functionsHans Wennborg2014-09-044-0/+31
| | | | | | Differential Revision: http://reviews.llvm.org/D5183 llvm-svn: 217200
* Don't allow non-ASM statements in naked functionsHans Wennborg2014-09-043-1/+23
| | | | | | | | | | Naked functions don't have prologues or epilogues, so doing codegen for anything other than inline assembly would be completely hit or miss. Differential Revision: http://reviews.llvm.org/D5183 llvm-svn: 217199
* Don't emit prologues or epilogues for naked functions (PR18791, PR20028)Hans Wennborg2014-09-042-1/+19
| | | | | | | | | | | | | | | | | | | | | | | | | For naked functions with parameters, Clang would still emit stores in the prologue that would clobber the stack, because LLVM doesn't set up a stack frame. (This shows up in -O0 compiles, because the stores are optimized away otherwise.) For example: __attribute__((naked)) int f(int x) { asm("movl $42, %eax"); asm("retl"); } Would result in: _Z1fi: movl 12(%esp), %eax movl %eax, (%esp) <--- Oops. movl $42, %eax retl Differential Revision: http://reviews.llvm.org/D5183 llvm-svn: 217198
* PR20844: If we fail to list-initialize a reference, map to the referenced typeRichard Smith2014-09-045-8/+31
| | | | | | | | | before retrying the initialization to produce diagnostics. Otherwise, we may fail to produce any diagnostics, and silently produce invalid AST in a -Asserts build. Also add a note to this codepath to make it more clear why we were trying to create a temporary. llvm-svn: 217197
* MS format strings: allow the 'h' length modifier with C, C, s and S (PR20808)Hans Wennborg2014-09-044-2/+42
| | | | llvm-svn: 217196
* MS format strings: support the 'w' length modifier (PR20808)Hans Wennborg2014-09-045-13/+81
| | | | llvm-svn: 217195
* Add triple to ms-inline-asm-return.cpp testReid Kleckner2014-09-041-1/+1
| | | | llvm-svn: 217192
* MS inline asm: Allow __asm blocks to set a return valueReid Kleckner2014-09-047-10/+226
| | | | | | | | | | | | | | | | | | | | | | | | | | If control falls off the end of a function after an __asm block, MSVC assumes that the inline assembly filled the EAX and possibly EDX registers with an appropriate return value. This functionality is used in inline functions returning 64-bit integers in system headers, so we need some amount of compatibility. This is implemented in Clang by adding extra output constraints to every inline asm block, and storing the resulting output registers into the return value slot. If we see an asm block somewhere in the function body, we emit a normal epilogue instead of marking the end of the function with a return type unreachable. Normal returns in functions not using this functionality will overwrite the return value slot, and in most cases LLVM should be able to eliminate the dead stores. Fixes PR17201. Reviewed By: majnemer Differential Revision: http://reviews.llvm.org/D5177 llvm-svn: 217187
* clang-format: [JS] Support alternative operator names as identifiers.Daniel Jasper2014-09-044-12/+15
| | | | | | | | | | Before: not. and . or . not_eq = 1; After: not.and.or.not_eq = 1; llvm-svn: 217179
* Win64: Add the uwtable attribute by default on Win64Reid Kleckner2014-09-041-5/+4
| | | | | | | Now that LLVM emits correct .pdata and .xdata for inline functions, we can reenable this. llvm-svn: 217178
* MS inline asm: Add a test for xgetbv clobbersReid Kleckner2014-09-041-0/+6
| | | | llvm-svn: 217174
* unique_ptrify JobList::JobsDavid Blaikie2014-09-049-78/+74
| | | | llvm-svn: 217168
* Fix the clang -Werror build after r217152 by flagging a polymorphically used ↵David Blaikie2014-09-041-1/+4
| | | | | | but statically owned hierarchy with a protected base dtor and final classes to satisfy -Wnon-virtual-dtor llvm-svn: 217167
* Fix double full-stop that was accidentally added in r217160.Daniel Sanders2014-09-041-1/+1
| | | | llvm-svn: 217161
* [mips] Mark aggregates returned in registers with the 'inreg' attribute.Daniel Sanders2014-09-043-12/+15
| | | | | | | | | | | | | | | | | | Summary: This allows us to easily find them in the backend after the aggregates have been lowered to other types. This is important on big-endian targets using the N32/N64 ABI's since these ABI's must shift small structures into the upper bits of the register. Reviewers: atanasyan Reviewed By: atanasyan Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D5005 llvm-svn: 217160
* clang-format: [JS] Supprot "catch" as function name.Daniel Jasper2014-09-042-1/+6
| | | | | | | | | | Before: someObject.catch (); After: someObject.catch(); llvm-svn: 217158
* clang-format: [JS] Support comments in dict literals.Daniel Jasper2014-09-042-4/+16
| | | | | | | | | | | | | | | | | | | | | | | | Before: var stuff = { // comment for update update : false, // comment for update modules : false, // comment for update tasks : false }; After: var stuff = { // comment for update update : false, // comment for update modules : false, // comment for update tasks : false }; llvm-svn: 217157
* Refactor VariantMatcher::MatcherOps to reduce the amount of generated code.Samuel Benzaquen2014-09-044-71/+126
| | | | | | | | | | | | | | | | | | Summary: Refactor VariantMatcher::MatcherOps to reduce the amount of generated code. - Make some code type agnostic and move it to the cpp file. - Return a DynTypedMatcher instead of storing the object in MatcherOps. This change reduces the number of symbols generated in Registry.cpp by ~19%, the object byte size by ~17% and the compilation time (in non-release mode) by ~20%. Reviewers: klimek Subscribers: klimek, cfe-commits Differential Revision: http://reviews.llvm.org/D5124 llvm-svn: 217152
* [mips] Zero-sized structs cannot be ignored in ↵Daniel Sanders2014-09-042-1/+22
| | | | | | | | | | | | | | | | | | | | | | | MipsABIInfo::classifyReturnType() for O32 Summary: They are returned indirectly which causes the other arguments to move to the next argument slot. With this, utils/ABITest does not discover any failing cases in the first 500 attempts on big/little endian for O32. Previously some of these failed. Also tested N32/N64 little endian (big endian has other known issues) with no issues. Reviewers: atanasyan Reviewed By: atanasyan Subscribers: atanasyan, cfe-commits Differential Revision: http://reviews.llvm.org/D4811 llvm-svn: 217147
* ARM: Default to apcs-gnu ABI for NetBSDOliver Stannard2014-09-042-1/+14
| | | | | | | | r216662 changed the default ABI for 32-bit ARM targets to be "aapcs" when no environment is given in the triple, however NetBSD requires it to be "apcs-gnu". llvm-svn: 217141
* Add matcher for linkage specificationManuel Klimek2014-09-043-0/+26
| | | | | | Patch by Jacques Pienaar. llvm-svn: 217135
* Adjust test to handle fallout from r217102.David Majnemer2014-09-031-2/+2
| | | | llvm-svn: 217104
* [modules] Make NamespaceAliasDecl redeclarable, as it should be. This fixesRichard Smith2014-09-0311-62/+121
| | | | | | | merging of namespace aliases across modules and improves source fidelity. Incidentally also fixes PR20816. llvm-svn: 217103
* Add ubsan/not_ubsan features to Clang lit tests and useAlexey Samsonov2014-09-034-2/+12
| | | | | | them to exclude tests with large stack usage from UBSan bootstrap. llvm-svn: 217064
* Fix member function call on null pointer in Sema::FindInstantiatedDecl.Alexey Samsonov2014-09-031-11/+11
| | | | | | This bug was reported by UBSan. llvm-svn: 217059
* Enhance the 'Vectors and Extended Vectors' section.Anton Yartsev2014-09-031-17/+23
| | | | | | Added cast operations to the table of vector operations. Supported status 'no' means that there are no tests in the Clang test suite for the given cast. llvm-svn: 217055
* Update for LLVM api change.Rafael Espindola2014-09-031-1/+1
| | | | llvm-svn: 217050
* Fix indentation. No behavior change.Nico Weber2014-09-031-1/+1
| | | | llvm-svn: 217044
* Split off CUDA-specific Sema parts to a new fileEli Bendersky2014-09-034-57/+77
| | | | | | | | | | | In line with SemaOpenMP.cpp, etc. CUDA-specific semantic analysis code goes into a separate file. This is in anticipation of adding extra functionality here in the near future. No change in functionality. Review: http://reviews.llvm.org/D5160 llvm-svn: 217043
* CGBuiltin: Use @llvm.fabs rather than fabs libcall when emitting builtinsTom Stellard2014-09-032-24/+10
| | | | | | | | | | | Using the intrinsic allows the SelectionDAGBuilder to turn this call into the FABS Node and also the intrinsic is something the vectorizer knows how to vectorize. This patch also sets the readnone attribute on this call, which should enable additional optmizations. llvm-svn: 217042
* Fix configure and make build of clang-interpreter.Iain Sandoe2014-09-031-2/+4
| | | | | | | Replaced 'jit' link component with 'mcjit'. Updated the required libraries. llvm-svn: 217033
* ASTMatchers: Add a matcher to detect whether a decl or stmt is inside a ↵Benjamin Kramer2014-09-033-0/+98
| | | | | | | | | | | template instantiation. This is hoisted from clang-tidy where it's used everywhere. The implementation is not particularly efficient right now, but there is no easy fix for that. Differential Revision: http://reviews.llvm.org/D5085 llvm-svn: 217029
* Parse: Replace polymorphic functor objects with lambdas and llvm::function_ref.Benjamin Kramer2014-09-034-135/+66
| | | | | | No change in functionality. llvm-svn: 217025
* clang-format: Add an option 'SpaceAfterCStyleCast'.Daniel Jasper2014-09-035-2/+45
| | | | | | | | | | | | | | | | | This permits to add a space after closing parenthesis of a C-style cast. Defaults to false to preserve old behavior. Fixes llvm.org/PR19982. Before: (int)i; After: (int) i; Patch by Marek Kurdej. llvm-svn: 217022
* Allow a scoped lockable object to acquire/release multiple locks.Ed Schouten2014-09-032-125/+174
| | | | | | | | | | | | | | | | | Scoped lockable objects (mutex guards) are implemented as if it is a lock itself that is acquired upon construction and unlocked upon destruction. As it if course needs to be used to actually lock down something else (a mutex), it keeps track of this knowledge through its underlying mutex field in its FactEntry. The problem with this approach is that this only allows us to lock down a single mutex, so extend the code to use a vector of underlying mutexes. This, however, makes the code a bit more complex than necessary, so subclass FactEntry into LockableFactEntry and ScopedLockableFactEntry and move all the logic that differs between regular locks and scoped lockables into member functions. llvm-svn: 217016
* [modules] Use DeclContext::equals rather than == on DeclContext* whenRichard Smith2014-09-036-7/+39
| | | | | | | | | | determining whether a declaration is out of line, instead of assuming that the semantic and lexical DeclContext will be the same declaration whenever they're the same entity. This fixes behavior of declarations within merged classes and enums. llvm-svn: 217008
* Reinstate "Update for llvm API change.""Eric Christopher2014-09-021-1/+0
| | | | | | This reinstates r215113. llvm-svn: 216986
* Fix up formatting.Eli Bendersky2014-09-021-1/+1
| | | | llvm-svn: 216976
* Avoid test failure on platforms where size_t is long long (and thus can't beRichard Smith2014-09-021-3/+4
| | | | | | directly written in strictly-conforming source code). llvm-svn: 216969
* Add --analyze to clang-clReid Kleckner2014-09-021-1/+1
| | | | llvm-svn: 216964
* Tests for DR550-572.Richard Smith2014-09-023-18/+206
| | | | llvm-svn: 216953
* Use /usr/bin/env python instead of /usr/bin/python.Ed Schouten2014-09-022-2/+2
| | | | | | | | On operating systems like the BSDs, it is typically the case that /usr/bin/python does not exist. We should therefore use /usr/bin/env instead. This is also done in various other scripts in tools/. llvm-svn: 216945
OpenPOWER on IntegriCloud