summaryrefslogtreecommitdiffstats
path: root/clang/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* PR24483: Delete some dead/incorrect code that triggered assertions.Richard Smith2015-08-201-19/+0
| | | | llvm-svn: 245609
* [Headers][X86] Use __builtin_shufflevector in AVX2 broadcasts.Ahmed Bougacha2015-08-201-11/+11
| | | | | | | | | | This lets us optimize them better. We agreed to remove the intrinsics, instead of combining them later, as, at -O0, we generate the expected instructions. Plus, it's a nice cleanup. Differential Revision: http://reviews.llvm.org/D10556 llvm-svn: 245605
* [Sparc] Add '-EL' when invoking gcc to link little-endian binaries.Douglas Katzman2015-08-201-4/+14
| | | | | | Differential Revision: http://reviews.llvm.org/D12201 llvm-svn: 245595
* Revert r245496 "[CUDA] Add appropriate host/device attribute to builtins."Artem Belevich2015-08-202-12/+1
| | | | | | It's breaking internal test. llvm-svn: 245592
* Silence a "not all control paths return a value" warning; NFC.Aaron Ballman2015-08-201-1/+1
| | | | llvm-svn: 245562
* Fix crash with two typos in the arguments of a functionOlivier Goffart2015-08-201-0/+1
| | | | | | | | The problem is that the arguments are of TheCall are reset later to the ones in Args, making TypoExpr put back. Some TypoExpr that have already been diagnosed and will assert later in Sema::getTypoExprState llvm-svn: 245560
* [OPENMP 4.1] Allow to use 'uval' and 'ref' modifiers for reference types only.Alexey Bataev2015-08-202-2/+7
| | | | | | Standard allows to use 'uval' and 'ref' modifiers in 'linear' clause for variables with reference types only. Added check for it and modified test. llvm-svn: 245556
* [OPENMP 4.1] Initial support for modifiers in 'linear' clause.Alexey Bataev2015-08-208-22/+78
| | | | | | | | | | | | | | | | | | | | | | OpenMP 4.1 adds 3 optional modifiers to 'linear' clause. Format of 'linear' clause has changed to: ``` linear(linear-list[ : linear-step]) ``` where linear-list is one of the following ``` list modifier(list) ``` where modifier is one of the following: ``` ref (C++) val (C/C++) uval (C++) ``` Patch adds parsing and sema analysis for these modifiers. llvm-svn: 245550
* Fix the layout of bitfields in ms_struct unions: theirJohn McCall2015-08-191-90/+152
| | | | | | | | | | | | | | | alignment is ignored, and they always allocate a complete storage unit. Also, change the dumping of AST record layouts: use the more readable C++-style dumping even in C, include bitfield offset information in the dump, and don't print sizeof/alignof information for fields of record type, since we don't do so for bases or other kinds of field. rdar://22275433 llvm-svn: 245514
* Fix -Wlogical-not-parentheses to work better with C code.Richard Trieu2015-08-191-5/+2
| | | | | | | Remove the assumption of a Boolean type by checking if an expression is known to have a boolean value. Disable warning in two other tests. llvm-svn: 245507
* [modules] Don't needlessly bounce through Sema when updating exception ↵Richard Smith2015-08-191-2/+3
| | | | | | specifications. llvm-svn: 245501
* Internal-linkage variables with constant-evaluatable initializers do not ↵Richard Smith2015-08-191-1/+5
| | | | | | need to be emitted. (Also reduces the set of variables that need to be eagerly deserialized when using PCH / modules.) llvm-svn: 245497
* [CUDA] Add appropriate host/device attribute to builtins.Artem Belevich2015-08-192-1/+12
| | | | | | Differential Revision: http://reviews.llvm.org/D12122 llvm-svn: 245496
* Generating available_externally vtables bugfixPiotr Padlewski2015-08-191-6/+4
| | | | | | | | Bugfix revealed in r245264. http://reviews.llvm.org/D12128 llvm-svn: 245489
* According to i686 ABI, long double size on x86 is 12 bytes not 16 bytes.Yaron Keren2015-08-191-1/+2
| | | | | | | See https://gcc.gnu.org/onlinedocs/gcc-3.2/gcc/i386-and-x86-64-Options.html llvm-svn: 245459
* Properly pass through the PIC mode to the integrated assembler whenJames Y Knight2015-08-191-162/+201
| | | | | | | | | | | | | | | | | | doing assembly-only, and unify the Driver's PIC argument parsing. On a few architectures, parsing of assembly files annoyingly depends on whether PIC is enabled or not. This was handled for external 'as' already (passing -KPIC), but was missed for calls to the standalone internal assembler. The integrated-as.s test needed to be modified to not expect -fsanitize=address to be unused, as now fsanitize *IS* used for assembly, since -fsanitize=memory can sometimes imply -fPIE, which the assembler needs to know (gack!!). Differential Revision: http://reviews.llvm.org/D11845 llvm-svn: 245447
* [ARM] Proper generic cpus handlingVladimir Sukharev2015-08-192-15/+13
| | | | | | | | | | | | | | "generic" cpu was wrongly handled as exact real CPU name of ARMv8.1A architecture. This has been fixed, now it is abstract name, suitable for any arch. Reviewers: rengolin Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D11640 llvm-svn: 245445
* [OPENMP] Link libomp.lib on WindowsAlexey Bataev2015-08-191-0/+21
| | | | | | | Adds libomp.lib for -fopenmp=libomp and libiomp5md.lib for -fopenmp=libiomp5 on Windows Differential Revision: http://reviews.llvm.org/D11932 llvm-svn: 245414
* [modules] Don't eagerly deserialize so many ImportDecls. CodeGen basically ↵Richard Smith2015-08-192-11/+13
| | | | | | ignores ImportDecls imported from modules, so only eagerly deserialize the ones from a PCH / preamble. llvm-svn: 245406
* Rename getDefaultFeatures -> initDefaultFeatures and update commentEric Christopher2015-08-191-10/+10
| | | | | | with the current behavior as the name seems to match what's going on. llvm-svn: 245405
* [SemaExpr] Re-enable missing assertion.Davide Italiano2015-08-191-2/+1
| | | | | | | | | | | | This has been disabled for a long time, but: 1) Initializers work (and apparently they're re reason why this was disabled). 2) various tests happen to hit this code path and the invariant seems to be always verified. Differential Revision: http://reviews.llvm.org/D12110 Reviewed by: rsmith llvm-svn: 245404
* Make __builtin_object_size always answer correctlyGeorge Burgess IV2015-08-191-43/+88
| | | | | | | | | | | | | | | | | | __builtin_object_size would return incorrect answers for many uses where type=3. This fixes the inaccuracy by making us emit 0 instead of LLVM's objectsize intrinsic. Additionally, there are many cases where we would emit suboptimal (but correct) answers, such as when arrays are involved. This patch fixes some of these cases (please see new tests in test/CodeGen/object-size.c for specifics on which cases are improved) Resubmit of r245323 with PR24493 fixed. Patch mostly by Richard Smith. Differential Revision: http://reviews.llvm.org/D12000 This fixes PR15212. llvm-svn: 245403
* unique_ptrify CXXBasePaths::DeclsFound & remove the then-unnecessary ↵David Blaikie2015-08-181-4/+4
| | | | | | | | | user-defined dtor Maybe this and the NumDeclsFound member should just be a std::vector instead. (it could be a std::dynarray, but that missed standardization) llvm-svn: 245392
* [modules] Fix HeaderFileInfo serialization to store all the known owning ↵Richard Smith2015-08-184-113/+144
| | | | | | modules for a header, not just the current favourite. llvm-svn: 245390
* Devirtualize EHScopeStack::Cleanup's dtor because it's never destroyed ↵David Blaikie2015-08-1813-44/+44
| | | | | | polymorphically llvm-svn: 245378
* Fix for MSVCDavid Blaikie2015-08-181-1/+1
| | | | llvm-svn: 245368
* Wdeprecated: Support movability of EHScopeStack::Cleanup objects as they are ↵David Blaikie2015-08-181-0/+5
| | | | | | move constructed in ConditionalCleanup::restore llvm-svn: 245367
* Range-based-for-convert some loops in ASTWriter. No functionality change ↵Richard Smith2015-08-181-35/+25
| | | | | | intended. llvm-svn: 245361
* Initialize the AST consumer as soon as we have both an ASTConsumer and anRichard Smith2015-08-185-22/+18
| | | | | | | ASTContext. Fixes some cases where we could previously initialize the AST consumer more than once. llvm-svn: 245346
* [sanitizer] Add -lutil to static runtime link flags.Evgeniy Stepanov2015-08-181-0/+1
| | | | | | | This is needed to prevent breakage of -Wl,-as-needed link when interceptors for functions in libutil are added. See PR15823. llvm-svn: 245344
* Revert r245323, it caused PR24493.Nico Weber2015-08-181-82/+44
| | | | llvm-svn: 245342
* Add AST narrowing matchers for inline and anonymous namespaces. Since the ↵Aaron Ballman2015-08-181-0/+2
| | | | | | inline keyword can also be specified on a FunctionDecl, this is a polymorphic matcher. llvm-svn: 245337
* Make __builtin_object_size always answer correctlyGeorge Burgess IV2015-08-181-44/+82
| | | | | | | | | | | | | | | | | __builtin_object_size would return incorrect answers for many uses where type=3. This fixes the inaccuracy by making us emit 0 instead of LLVM's objectsize intrinsic. Additionally, there are many cases where we would emit suboptimal (but correct) answers, such as when arrays are involved. This patch fixes some of these cases (please see new tests in test/CodeGen/object-size.c for specifics on which cases are improved) Patch mostly by Richard Smith. Differential Revision: http://reviews.llvm.org/D12000 This fixes PR15212. llvm-svn: 245323
* [TreeTransform] Simplify code. No functionality change.Benjamin Kramer2015-08-181-3/+1
| | | | llvm-svn: 245271
* [OPENMP 4.1] Allow variables with reference types in private clauses.Alexey Bataev2015-08-186-68/+54
| | | | | | OpenMP 4.1 allows to use variables with reference types in all private clauses (private, firstprivate, lastprivate, linear etc.). Patch allows to use such variables and fixes codegen for linear variables with reference types. llvm-svn: 245268
* Revert "Generating assumption loads of vptr after ctor call (fixed)"Justin Bogner2015-08-186-218/+110
| | | | | | | | | | | Bootstrap bots were failing: http://lab.llvm.org:8080/green/job/clang-stage2-configure-Rlto_build/6382/ http://bb.pgr.jp/builders/clang-3stage-i686-linux/builds/2969 This reverts r245264. llvm-svn: 245267
* Generating assumption loads of vptr after ctor call (fixed)Piotr Padlewski2015-08-186-110/+218
| | | | | | | | | | | | | | | Generating call assume(icmp %vtable, %global_vtable) after constructor call for devirtualization purposes. For more info go to: http://lists.llvm.org/pipermail/cfe-dev/2015-July/044227.html Edit: Fixed version because of PR24479. http://reviews.llvm.org/D11859 llvm-svn: 245264
* Revert r245257 "Generating assumption loads of vptr after ctor call"Hans Wennborg2015-08-185-216/+109
| | | | | | It caused PR24479 llvm-svn: 245260
* Generating assumption loads of vptr after ctor callPiotr Padlewski2015-08-175-109/+216
| | | | | | | | | | | | Generating call assume(icmp %vtable, %global_vtable) after constructor call for devirtualization purposes. For more info go to: http://lists.llvm.org/pipermail/cfe-dev/2015-July/044227.html http://reviews.llvm.org/D11859 llvm-svn: 245257
* Remove dead code, there's no need for an override that just duplicatesEric Christopher2015-08-171-2/+0
| | | | | | the default behavior. llvm-svn: 245251
* [modules] When parsing the base specifiers of a parse-merged class, the currentRichard Smith2015-08-171-1/+3
| | | | | | | | context is the class itself but lookups should be performed starting with the lookup parent of the class (class and base members don't shadow types from the surrounding context because they have not been declared yet). llvm-svn: 245236
* [modules] PR20507: Avoid silent textual inclusion.Sean Silva2015-08-172-3/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: If a module was unavailable (either a missing requirement on the module being imported, or a missing file anywhere in the top-level module (and not dominated by an unsatisfied `requires`)), we would silently treat inclusions as textual. This would cause all manner of crazy and confusing errors (and would also silently "work" sometimes, making the problem difficult to track down). I'm really not a fan of the `M->isAvailable(getLangOpts(), getTargetInfo(), Requirement, MissingHeader)` function; it seems to do too many things at once, but for now I've done things in a sort of awkward way. The changes to test/Modules/Inputs/declare-use/module.map were necessitated because the thing that was meant to be tested there (introduced in r197805) was predicated on silently falling back to textual inclusion, which we no longer do. The changes to test/Modules/Inputs/macro-reexport/module.modulemap are just an overlooked missing header that seems to have been missing since this code was committed (r213922), which is now caught. Reviewers: rsmith, benlangmuir, djasper Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D10423 llvm-svn: 245228
* [clang-tidy] Make NumOccurrenceFlag for SourcePaths configurable.Alexander Kornienko2015-08-171-4/+7
| | | | | | | | | | | | Added an additional ctor that takes a NumOccurrenceFlag parameter for the SourcePaths option. This frees applications from always having to pass at least one source file, e.g., -list-checks. http://reviews.llvm.org/D12069 Patch by Don Hinton! llvm-svn: 245204
* [modules] When explicitly building a module file, don't include timestamps inRichard Smith2015-08-176-34/+38
| | | | | | | the produced pcm file for stable file creation across distributed build systems. llvm-svn: 245199
* Tiny cleanup: move some Triple variables up to the top of theJames Y Knight2015-08-151-21/+27
| | | | | | function, and remove a duplicate var. llvm-svn: 245154
* [MS ABI] Switch catchpad/cleanuppad to use tokensDavid Majnemer2015-08-153-19/+22
| | | | llvm-svn: 245153
* clangStaticAnalyzerCheckers: Update libdesp.NAKAMURA Takumi2015-08-151-0/+1
| | | | llvm-svn: 245145
* Delay emitting members of dllexport classes until the class is fully parsed ↵Hans Wennborg2015-08-154-41/+72
| | | | | | | | | | | | | | | | | (PR23542) This enables Clang to correctly handle code such as: struct __declspec(dllexport) S { int x = 42; }; where it would otherwise error due to trying to generate the default constructor before the in-class initializer for x has been parsed. Differential Revision: http://reviews.llvm.org/D11850 llvm-svn: 245139
* [modules] Stop dropping 'module.timestamp' files into the current directoryRichard Smith2015-08-153-8/+13
| | | | | | when building with implicit modules disabled. llvm-svn: 245136
* [CONCEPTS] Add diagnostic; invalid tag when concept specifiedNathan Wilson2015-08-141-1/+9
| | | | | | | | | | | | Summary: Adding check to emit diagnostic for invalid tag when concept is specified and associated tests. Reviewers: rsmith, hubert.reinterpretcast, fraggamuffin, faisalv, aaron.ballman Subscribers: aaron.ballman, cfe-commits Differential Revision: http://reviews.llvm.org/D11916 llvm-svn: 245123
OpenPOWER on IntegriCloud