summaryrefslogtreecommitdiffstats
path: root/clang
Commit message (Collapse)AuthorAgeFilesLines
...
* InstrProf: Add a comment to clarify an argumentJustin Bogner2015-07-021-1/+2
| | | | llvm-svn: 241296
* This patch adds support for the vector merge even word and vector merge odd wordKit Barton2015-07-022-0/+78
| | | | | | | | | | | | instructions introduced in POWER8. These are the Clang-related changes for http://reviews.llvm.org/D10704 All builtins are added in altivec.h and guarded with the POWER8_VECTOR macro. Phabricator review: http://reviews.llvm.org/D10736 llvm-svn: 241293
* [Static Analyzer] No longer include the full path of the source file in the ↵Gabor Horvath2015-07-021-1/+1
| | | | | | single file tests' bug identifiers. llvm-svn: 241292
* [Sema] Range-loopify SemaTemplateInstantiateDecl.cpp. NFC.Davide Italiano2015-07-021-8/+6
| | | | llvm-svn: 241291
* Revert "Refactored ARMTargetInfo in order to use the API of ↵Rafael Espindola2015-07-021-72/+117
| | | | | | | | llvm/lib/Support/TargetParser.cpp for extracting target specific information." This reverts commit r241267. Tests were failing on the bots. llvm-svn: 241275
* clang-format: [JS] Treat regex literals like string literals.Daniel Jasper2015-07-022-0/+6
| | | | | | | Using the token type "unknown" can interfere badly with WhitespaceManager's way of handling multiline comments. llvm-svn: 241273
* Remove whitespace from start of line, NFC.Yaron Keren2015-07-021-1/+1
| | | | llvm-svn: 241272
* Refactored ARMTargetInfo in order to use the API of ↵Alexandros Lamprineas2015-07-021-117/+72
| | | | | | | | | llvm/lib/Support/TargetParser.cpp for extracting target specific information. Change-Id: Ia0b83ecdb8d9223f9c4ef38dd9206969f78e53f3 llvm-svn: 241267
* clang-format: [JS] Skip comments when applying the regex-literal heuristicDaniel Jasper2015-07-022-5/+11
| | | | llvm-svn: 241264
* When testing for anyOf(), the test should not be for an exact type match for ↵Aaron Ballman2015-07-022-2/+6
| | | | | | all members of the set. Instead, test that all members are convertible to the common type. llvm-svn: 241263
* clang-format: [JS] Fix bug in regex literal parsing.Daniel Jasper2015-07-022-0/+2
| | | | | | The lexer wasn't properly reset leading to unexpected deletions. llvm-svn: 241262
* test commitAlexandros Lamprineas2015-07-021-0/+2
| | | | | Change-Id: Ibaa2e1115544ddfa491335b81226819fd9cc04b4 llvm-svn: 241260
* clang-format: [JS] Support regex literals at the start of a file.Daniel Jasper2015-07-022-5/+7
| | | | llvm-svn: 241259
* [Modules] Be consistent about finding a module for framework headersBen Langmuir2015-07-0211-41/+88
| | | | | | | | | | | | | | | | We use findModuleForHeader() in several places, but in header search we were not calling it when a framework module didn't show up with the expected name, which would then lead to unexpected non-modular includes. Now we will find the module unconditionally for frameworks. For regular frameworks, we use the spelling of the module name from the module map file, and for inferred ones we use the canonical directory name. In the future we might want to lock down framework modules sufficiently that these name mismatches cannot happen. rdar://problem/20465870 llvm-svn: 241258
* clang-format: [JS] Fix character counting in template strings.Daniel Jasper2015-07-022-12/+13
| | | | | | | Some counts were off, we don't need to take the leading newlines of the first ` into account and some tests were just wrong. llvm-svn: 241257
* Implement an AST matcher for C++ exception catch handlers that can catch any ↵Aaron Ballman2015-07-024-0/+32
| | | | | | exception type (...). llvm-svn: 241256
* [OPENMP 4.0] Initial support for 'omp cancel' construct.Alexey Bataev2015-07-0225-5/+342
| | | | | | Implemented parsing/sema analysis + (de)serialization. llvm-svn: 241253
* [MS ABI] nullptr data member ptrs are mangled differently for classes vs fnsDavid Majnemer2015-07-023-5/+32
| | | | | | | | | | | It turns out that nullptr pointers to data members act differently in function templates vs class templates. Class templates use a variable width representation proportional to the number of fields needed to materialize it. Function templates always use a single '0' template parameter. However, using '0' all the time is problematic if the class uses single or multiple inheritance. In those cases, use -1. llvm-svn: 241251
* Specify --target, hopefully fixing non-x86 bots.Peter Collingbourne2015-07-021-4/+4
| | | | llvm-svn: 241248
* Revert 241171, 241187, 241199 (32-bit SEH).Nico Weber2015-07-029-383/+235
| | | | | | | It still doesn't produce quite the right code, test binaries built with this enabled fail some tests. llvm-svn: 241244
* Parse 'technical term' format specifier.Ted Kremenek2015-07-025-2/+146
| | | | | | | | | | | | | | | | | | | | | | | Objective-C format strings now support modifier flags that can be attached to a '@' conversion. Currently the only one supported, as of iOS 9 and OS X 10.11, is the new "technical term", denoted by the flag "tt", for example: %[tt]@ instead of just: %@ The 'tt' stands for "technical term", which is used by the string-localization facilities on Darwin to add the appropriate spacing or quotation depending the language locale. Implements <rdar://problem/20374720>. llvm-svn: 241243
* Change OptionalFlag::setPosition() to set the flag as well.Ted Kremenek2015-07-021-7/+1
| | | | | | | | | | This change reduces some unnecessary boilerplate since all calls to 'setPosition' are currently paired with setting the flag of OptionalFlag. No functionality change. llvm-svn: 241242
* Support mingw-w64 and mingw.org toolchains at any install location.Yaron Keren2015-07-028-66/+424
| | | | | | | | | | | | | No more hardcoded paths: clang will use -sysroot as gcc root location if provided. Otherwise, it will search for gcc on the path. If not found it will use the driver installed location. http://reviews.llvm.org/D5268 Patch by Ruben Van Boxem, Martell Malone, Yaron Keren. Reviewed by Reid Kleckner. llvm-svn: 241241
* [OPENMP 4.0] Fixed test for 'cancellation point' directive.Alexey Bataev2015-07-021-1/+1
| | | | | | Added explicit target to pch test llvm-svn: 241240
* [OPENMP 4.0] Codegen for 'cancellation point' directive.Alexey Bataev2015-07-025-36/+178
| | | | | | | | | | The next code is generated for this construct: ``` if (__kmpc_cancellationpoint(ident_t *loc, kmp_int32 global_tid, kmp_int32 cncl_kind) != 0) <exit from outer innermost construct>; ``` llvm-svn: 241239
* [OPENMP] Introduced type trait "__builtin_omp_required_simd_align" for ↵Alexey Bataev2015-07-0220-51/+178
| | | | | | | | | default simd alignment. Adds type trait "__builtin_omp_required_simd_align" after discussions here http://reviews.llvm.org/D9894 Differential Revision: http://reviews.llvm.org/D10597 llvm-svn: 241237
* Specify -arch:IA32. Should fix hexagon bot.Peter Collingbourne2015-07-021-4/+4
| | | | llvm-svn: 241229
* Make getArchNameForCompilerRTLib return the right thing on 32-bit Windows. ↵Peter Collingbourne2015-07-021-0/+4
| | | | | | Fixes the tests there. llvm-svn: 241228
* Driver: add support for linking the UBSan runtime library on Windows.Peter Collingbourne2015-07-026-15/+37
| | | | | | | | | | | | | | On Windows the user may invoke the linker directly, so we might not have an opportunity to add runtime library flags to the linker command line. Instead, instruct the code generator to embed linker directive in the object file that cause the required runtime libraries to be linked. We might also want to do something similar for ASan, but it seems to have its own special complexities which may make this infeasible. Differential Revision: http://reviews.llvm.org/D10862 llvm-svn: 241225
* InstrProf: Pack the coverage mapping structs that we write outJustin Bogner2015-07-022-2/+2
| | | | | | | When we read this data we treat it as unaligned and packed, so we should really be explicit about that when we write it. llvm-svn: 241218
* [modules] Merging support for specializations of a function template. This veryRichard Smith2015-07-013-5/+15
| | | | | | | rarely matters, but can affect whether two dependent types are canonically equivalent. llvm-svn: 241207
* [modules] Remove some out-of-date (fixed) FIXMEs.Richard Smith2015-07-011-9/+0
| | | | llvm-svn: 241205
* [analyzer] Prevent ccc/c++-analyzer from hanging on Windows.Anton Yartsev2015-07-012-62/+48
| | | | | | 'fork'+'exec' combination made scan-build and ccc-analyzer hang under Windows. The patch replaces 'fork'+'exec' with more reliable 'system' (ccc-analyzer) and piped 'open' (scan-build). See http://reviews.llvm.org/D8774 and http://reviews.llvm.org/D9357 for more details. llvm-svn: 241201
* [SEH] Update EmitCapturedLocals to match r241187Reid Kleckner2015-07-012-27/+25
| | | | | | | It was still using frameaddress(1) to get the parent FP, even though it had the value it wanted as a parameter. llvm-svn: 241199
* [Sema] Range-loopify InititializationSequence destructor. NFC intended.Davide Italiano2015-07-011-4/+2
| | | | llvm-svn: 241195
* clang-format: Support member function reference qualifiers withDaniel Jasper2015-07-012-6/+9
| | | | | | | | | | | | | | trailing return types. Before: template <typename T> auto x() & -> int {} After: template <typename T> auto x() & -> int {} llvm-svn: 241188
* [SEH] Delete the 32-bit IR lowering for __finally blocks and use x64Reid Kleckner2015-07-014-101/+41
| | | | | | | | | | | | | | | | 32-bit finally funclets are intended to be called both directly from the parent function and indirectly from the EH runtime. Because we aren't contorting LLVM's X86 prologue to match MSVC's, calling the finally block directly passes in a different value of EBP than the one that the runtime provides. We need an adapter thunk to adjust EBP to the expected value. However, WinEHPrepare already has to solve this problem when cleanups are not pre-outlined, so we can go ahead and rely on it rather than duplicating work. Now we only do the llvm.x86.seh.recoverfp dance for 32-bit SEH filter functions. llvm-svn: 241187
* [modules] Don't make out-of-line member specializations of an instantiatedRichard Smith2015-07-013-11/+21
| | | | | | | class template specialization visible just because the class template specialization's definition is visible. llvm-svn: 241182
* [modules] Skip trailing attributes when skipping a class definition during ↵Richard Smith2015-07-012-0/+9
| | | | | | parse-merging. llvm-svn: 241180
* Revert "[DebugInfo] Fix debug info generation for function static variables, ↵David Blaikie2015-07-017-122/+7
| | | | | | | | | | typedefs, and records" Caused PR24008. This reverts commit r241154. llvm-svn: 241177
* [SEH] Add 32-bit lowering for SEH __tryReid Kleckner2015-07-019-237/+447
| | | | | | | | | | | | | | | | | | | This re-lands r236052 and adds support for __exception_code(). In 32-bit SEH, the exception code is not available in eax. It is only available in the filter function, and now we arrange to load it and store it into an escaped variable in the parent frame. As a consequence, we have to disable the "catch i8* null" optimization on 32-bit and always generate a filter function. We can re-enable the optimization if we detect an __except block that doesn't use the exception code, but this probably isn't worth optimizing. Reviewers: majnemer Differential Revision: http://reviews.llvm.org/D10852 llvm-svn: 241171
* [DebugInfo] Fix debug info generation for function static variables, ↵Michael Kuperstein2015-07-017-7/+122
| | | | | | | | | | | | | | | typedefs, and records Function static variables, typedefs and records (class, struct or union) declared inside a lexical scope were associated with the function as their parent scope, rather than the lexical scope they are defined or declared in. This fixes PR19238 Patch by: amjad.aboud@intel.com Differential Revision: http://reviews.llvm.org/D9760 llvm-svn: 241154
* [modules] Don't require the 'inline' specifier when merging an inline function;Richard Smith2015-07-012-1/+7
| | | | | | any source of the inline nature is sufficient. llvm-svn: 241146
* [OPENMP 4.0] Initial support for 'omp cancellation point' construct.Alexey Bataev2015-07-0126-32/+446
| | | | | | Add parsing and sema analysis for 'omp cancellation point' directive. llvm-svn: 241145
* Fix a couple of unused variables in no-assertsJustin Bogner2015-07-011-0/+2
| | | | llvm-svn: 241144
* -frewrite-includes: Prefer insert to emplaceJustin Bogner2015-07-011-3/+4
| | | | | | Some bots didn't like r241140. llvm-svn: 241141
* -frewrite-includes: Rework how includes and modules are differentiatedJustin Bogner2015-07-011-39/+50
| | | | | | | | | | | | | | | | | | | | The map of FileChange structs here was storing two disjoint types of information: 1. A pointer to the Module that an #include directive implicitly imported 2. A FileID and FileType for an included file. These would be left uninitialized in the Module case. This change splits these two kinds of information into their own maps, which both simplifies how we access either and avoids the undefined behaviour we were hitting due to the uninitialized fields in the included file case. Mostly NFC, but fixes some errors found by self-host with ubsan. llvm-svn: 241140
* [modules] Before checking whether the controlling macro of a header is defined,Richard Smith2015-07-0111-27/+36
| | | | | | | | | | | update the identifier in case we've imported a definition of the macro (and thus the contents of the header) from a module. Also fold ExternalIdentifierLookup into ExternalPreprocessorSource; it no longer makes sense to keep these separate now that the only user of the former also needs the latter. llvm-svn: 241137
* CodeGen: Do not give local-linkage functions externally available linkage, ↵Peter Collingbourne2015-07-012-1/+2
| | | | | | | | | | | | | | | | even temporarily. When an internal-linkage thunk is code gen'd, CodeGenVTables::emitThunk will first be called with ForVTable=true (which incorrectly set the thunk's linkage to available_externally under the Itanium ABI) and later with ForVTable=false (which reset it to internal). Because we will always see a call with ForVTable=false, this incorrect linkage never ended up in the final IR. However, the temporary presence of this linkage caused us to give such functions a comdat as a result of code introduced in r241102. To avoid this, check that the thunk is externally visible before giving it available_externally linkage. llvm-svn: 241136
* [modules] Make the include guard optimization fire a bit more when consideringRichard Smith2015-07-013-4/+9
| | | | | | | | | | | re-entering a modular header. When we do the include guard check, we're in the visibility state for the file with the #include; the include guard may not be visible there, but we don't actually need it to be: if we've already parsed the submodule we're considering entering, it's always safe to skip it. llvm-svn: 241135
OpenPOWER on IntegriCloud