- Feb 27, 2014
-
-
Alexey Samsonov authored
llvm-svn: 202355
-
Mark Seaborn authored
llvm-svn: 202354
-
Alexey Samsonov authored
llvm-svn: 202353
-
Ted Kremenek authored
[-Wunreachable-code] Don't warn about trivially unreachable return statements preceded by 'noreturn' functions. llvm-svn: 202352
-
Ted Kremenek authored
llvm-svn: 202351
-
Shankar Easwaran authored
This is to accomodate future changes for newer revisions of the DSP. No change in functionality. llvm-svn: 202350
-
Ted Kremenek authored
They are covered by -Wcovered-switch-default. llvm-svn: 202349
-
Craig Topper authored
llvm-svn: 202348
-
Craig Topper authored
llvm-svn: 202347
-
Argyrios Kyrtzidis authored
With r197755 we started reading the contents of buffer file entries, but the buffers may point to ASTReader blobs that have been disposed. Fix this by having the CompilerInstance object keep a reference to the ASTReader as well as having the ASTContext keep reference to the ExternalASTSource. This was very difficult to construct a test case for. rdar://16149782 llvm-svn: 202346
-
Craig Topper authored
[X86] Add RAX/EAX/AX/AL Uses/Defs to the absolute memory location move instructions. Patch by Florian Lukas with some additional instructions fixed by me. Fixes PR18975. llvm-svn: 202345
-
Craig Topper authored
llvm-svn: 202344
-
Nick Lewycky authored
Change this test to not try to emit any IR. (It should fail to, but it tries to create an output file before encountering the error.) llvm-svn: 202343
-
Craig Topper authored
llvm-svn: 202342
-
Juergen Ributzka authored
This reverts commit r202283, because when we use GuardMalloc the test will fail due to additional output to std err. llvm-svn: 202341
-
Nick Lewycky authored
llvm-svn: 202340
-
Marshall Clow authored
LWG issue #2188: Reverse iterator does not fully support targets that overload operator&. Also mark #2272 and #2299 as complete; libc++ already implements them. llvm-svn: 202339
-
Ben Langmuir authored
This reverts commit r202225, which may cause a performance regression. llvm-svn: 202338
-
Michel Danzer authored
If the SI_KILL operand is constant, we can either clear the exec mask if the operand is negative, or do nothing otherwise. Reviewed-by:
Tom Stellard <thomas.stellard@amd.com> llvm-svn: 202337
-
Michel Danzer authored
Reviewed-by:
Tom Stellard <thomas.stellard@amd.com> llvm-svn: 202336
-
Ted Kremenek authored
This test also illustrates that checking for properties is not working properly with this attribute, as we are missing a diagnostic for a property not being implemented. llvm-svn: 202335
-
Eric Christopher authored
generation purposes. Paired with a commit to llvm. llvm-svn: 202334
-
Eric Christopher authored
any ranges to the list of ranges for the CU as we don't want to emit them anyway. This ensures that we will still emit ranges if we have a compile unit compiled with only line tables and one compiled with full debug info requested (we'll emit for the one with full debug info). Update testcase metadata accordingly to continue emitting ranges. llvm-svn: 202333
-
Eric Christopher authored
and update everything accordingly. This can be used to conditionalize the amount of output in the backend based on the amount of debug requested/metadata emission scheme by a front end (e.g. clang). Paired with a commit to clang. llvm-svn: 202332
-
Hans Wennborg authored
Erroring out until we fix the bug means we don't have to keep chasing down this same miscompile in a bunch of different places. Differential Revision: http://llvm-reviews.chandlerc.com/D2890 llvm-svn: 202331
-
Nick Lewycky authored
llvm-svn: 202330
-
Ben Langmuir authored
When true, sets the name of the file to be the name from 'external-contents'. Otherwise, you get the virtual path that the file was looked up by. This will not affect any non-virtual paths, or fully virtual paths (for which there is no reasonable 'external' name anyway). The setting is available globally, but can be overriden on a per-file basis. The goal is that this setting will control which path you see in debug info, diagnostics, etc. which are sensitive to which path is used. That will come in future patches that pass the name through to FileManager. llvm-svn: 202329
-
Ted Kremenek authored
[-Wunreachable-code] Prune out unreachable warnings where a 'break' is preceded by a call to a 'noreturn' function. For example: unreachable(); break; This code is idiomatic and defensive. The fact that 'break' is unreachable here is not interesting. This occurs frequently in LLVM/Clang itself. llvm-svn: 202328
-
Ted Kremenek authored
[CFG] encode unreachable block information for would-have-been successors for calls to 'noreturn' functions. llvm-svn: 202327
-
Ted Kremenek authored
llvm-svn: 202326
-
Ted Kremenek authored
This is to support some analyses, like -Wunreachable-code, that will need to recover the original unprunned CFG edges in order to suppress issues that aren't really bugs in practice. There are two important changes here: - AdjacentBlock replaces CFGBlock* for CFG successors/predecessors. This has the size of 2 pointers, instead of 1. This is unlikely to have a significant memory impact on Sema since a single CFG usually exists at one time, but could impact the memory usage of the static analyzer. This could possibly be optimized down to a single pointer with some cleverness. - Predecessors can now contain null predecessors, which means some analyses doing a reverse traversal will need to take into account. This already exists for successors, which contain successor slots for specific branch kinds (e.g., 'if') that expect a fixed number of successors, even if a branch is not reachable. llvm-svn: 202325
-
Reid Kleckner authored
llvm-svn: 202324
-
Eric Christopher authored
llvm-svn: 202323
-
Rui Ueyama authored
llvm-svn: 202322
-
Eric Christopher authored
llvm-svn: 202321
-
Reid Kleckner authored
Clang is using llvm::StructType::isOpaque() as a way of signaling if we've finished record type conversion in CodeGenTypes::isRecordLayoutComplete(). However, Clang was setting the body of the type before it finished laying out the type as a base type. Laying out the %class.C.base LLVM type attempts to convert more types, eventually recursively attempting to layout 'C' again, at which point we would say that layout was complete, even though we were still in the middle of it. By not setting the body, we correctly signal that layout is not complete, and things work as expected. At some point, it might be worth refactoring this to avoid looking at the LLVM IR types under construction. llvm-svn: 202320
-
Adrian Prantl authored
llvm-svn: 202319
-
Eric Christopher authored
llvm-svn: 202318
-
Adrian Prantl authored
llvm-svn: 202317
-
Eric Christopher authored
llvm-svn: 202316
-