- Aug 08, 2012
-
-
Jakob Stoklund Olesen authored
llvm-svn: 161513
-
Jordan Rose authored
Unfortunately, generalized region printing is very difficult: - ElementRegions are used both for casting and as actual elements. - Accessing values through a pointer means going through an intermediate SymbolRegionValue; symbolic regions are untyped. - Referring to implicitly-defined variables like 'this' and 'self' could be very confusing if they come from another stack frame. We fall back to simply not printing the region name if we can't be sure it will print well. This will allow us to improve in the future. llvm-svn: 161512
-
Jordan Rose authored
The main blocker on this (besides the previous commit) was that ScanReachableSymbols was not looking through LazyCompoundVals. Once that was fixed, it's easy enough to clear out malloc data on return, just like we do when we bind to a global region. <rdar://problem/10872635> llvm-svn: 161511
-
Jordan Rose authored
RegionStore currently uses a (Region, Offset) pair to describe the locations of memory bindings. However, this representation breaks down when we have regions like 'array[index]', where 'index' is unknown. We used to store this as (SubRegion, 0); now we mark them specially as (SubRegion, SYMBOLIC). Furthermore, ProgramState::scanReachableSymbols depended on the existence of a sub-region map, but RegionStore's implementation doesn't provide for such a thing. Moving the store-traversing logic of scanReachableSymbols into the StoreManager allows us to eliminate the notion of SubRegionMap altogether. This fixes some particularly awkward broken test cases, now in array-struct-region.c. llvm-svn: 161510
-
Jordan Rose authored
No functionality change. A couple ugly const_casts because the ancestor search code is used for other purposes as well. llvm-svn: 161509
-
Chad Rosier authored
asm statements are those that don't reference variable names, function names, and labels. Add logic to generate a patched AsmString that will eventually be consumed by the AsmParser. No functional change at this point, so unfortunately no test case. llvm-svn: 161508
-
Jakob Stoklund Olesen authored
Thanks, Andy! llvm-svn: 161507
-
Chandler Carruth authored
Also test the commit hooks for the new repository. llvm-svn: 161506
-
Sebastian Pop authored
llvm-svn: 161505
-
Sebastian Pop authored
This patch allows us to use cmake to specify a cross compiler for Hexagon. In particular, the patch adds a missing case for the target Hexagon in cmake/config-ix.cmake, and it moves LLVM_DEFAULT_TARGET_TRIPLE and TARGET_TRIPLE variables from cmake/config-ix.cmake to the toplevel CMakeLists.txt to make them available at configure time. Here is the command line that I have used to test my patches: $ cmake -G Ninja -D BUILD_SHARED_LIBS:BOOL=ON -D LLVM_TARGETS_TO_BUILD:STRING=Hexagon -D TARGET_TRIPLE:STRING=hexagon-unknown-linux-gnu -D LLVM_DEFAULT_TARGET_TRIPLE:STRING=hexagon-unknown-linux-gnu -D LLVM_TARGET_ARCH:STRING=hexagon-unknown-linux-gnu -D LLVM_ENABLE_PIC:BOOL=OFF .. $ ninja check llvm-svn: 161504
-
Chad Rosier authored
llvm-svn: 161503
-
Sean Callanan authored
suppress all non-error output from the "expression" command. <rdar://problem/11225150> llvm-svn: 161502
-
David Blaikie authored
This is effectively a warning for code that violates core issue 903 & thus will become standard error in the future, hopefully. It catches strange null pointers such as: '\0', 1 - 1, const int null = 0; etc... There's currently a flaw in this warning (& the warning for 'false' as a null pointer literal as well) where it doesn't trigger on comparisons (ptr == '\0' for example). Fix to come in a future patch. Also, due to this only being a warning, not an error, it triggers quite frequently on gtest code which tests expressions for null-pointer-ness in a SFINAE context (so it wouldn't be a problem if this was an error as in an actual implementation of core issue 903). To workaround this for now, the diagnostic does not fire in unevaluated contexts. Review by Sean Silva and Richard Smith. llvm-svn: 161501
-
Fariborz Jahanian authored
-Wdirect-ivar-access. llvm-svn: 161500
-
Chad Rosier authored
llvm-svn: 161498
-
Howard Hinnant authored
Change size of reference count field in __libcpp_nmstr from 32 bits to 64 bits for 64 bit targets. This is controls the data layout of all exceptions defined in <stdexcept>. This aligns the ABI with that of gcc-4.2. llvm-svn: 161497
-
Howard Hinnant authored
Change size of reference count field in __libcpp_nmstr from 32 bits to 64 bits for 64 bit targets. This is controls the data layout of all exceptions defined in <stdexcept>. This aligns the ABI with that of gcc-4.2. llvm-svn: 161496
-
Dylan Noblesmith authored
Add some tests for __OPTIMIZE_SIZE__ and __NO_INLINE__, removing the superfluous copies in the target-specific tests, since it's target-independent. This uncovered a bug in the handling of -Oz: it would attempt to store the value 2 in the 1-bit bitfield OptimizeSize, leaving a value of 0 and never defining __OPTIMIZE_SIZE__. llvm-svn: 161495
-
Dylan Noblesmith authored
llvm-svn: 161494
-
Filipe Cabecinhas authored
llvm-svn: 161493
-
Filipe Cabecinhas authored
llvm-svn: 161492
-
Rafael Espindola authored
Committing it first as it makes the "real" patch a lot easier to read. llvm-svn: 161491
-
NAKAMURA Takumi authored
llvm-svn: 161489
-
Anton Korobeynikov authored
Patch by kai@redstar.de ! llvm-svn: 161487
-
Alexey Samsonov authored
llvm-svn: 161485
-
Benjamin Kramer authored
llvm-svn: 161483
-
Hans Wennborg authored
Contributed by Brad Smith <brad@comstyle.com> llvm-svn: 161481
-
Bill Wendling authored
llvm-svn: 161479
-
Bill Wendling authored
llvm-svn: 161478
-
Bill Wendling authored
There are situations where inline ASM may want to change the section -- for instance, to create a variable in the .data section. However, it cannot do this without (potentially) restoring to the wrong section. E.g.: asm volatile (".section __DATA, __data\n\t" ".globl _fnord\n\t" "_fnord: .quad 1f\n\t" ".text\n\t" "1:" :::); This may be wrong if this is inlined into a function that has a "section" attribute. The user should use `.pushsection' and `.popsection' here instead. The addition of `.previous' is added for completeness. <rdar://problem/12048387> llvm-svn: 161477
-
Richard Smith authored
A conditional operator between glvalues of types cv1 T and cv2 T produces a glvalue if the expressions are of the same value kind and one of cv1 and cv2 is a subset of the other. A conditional operator between two null pointer constants is permitted if one of them is of type std::nullptr_t. llvm-svn: 161476
-
Chris Lattner authored
clarify that the advantages of the BSD license apply to when you incorporate clang into proprietary code bases, patch by Jonathan Sauer. llvm-svn: 161475
-
Eli Friedman authored
Fixes a crash (<rdar://problem/11067144>), and generally seems to improve recovery in other cases. llvm-svn: 161474
-
Eli Friedman authored
member of reference type in an anonymous struct. PR13154. llvm-svn: 161473
-
Eli Friedman authored
llvm-svn: 161472
-
Andrew Trick authored
This replaces an existing subtarget hook on ARM and allows standard CodeGen passes to potentially use the property. llvm-svn: 161471
-
Andrew Trick authored
llvm-svn: 161470
-
Andrew Trick authored
llvm-svn: 161469
-
Eli Friedman authored
sure we account for that correctly in DeadStoreElimination. Fixes a regression from r158919. PR13547. llvm-svn: 161468
-
rdar://problem/11975483Enrico Granata authored
<rdar://problem/11975483> Removing user-visible references to 'dict' as a parameter name for Python summary-generating functions since it is a Python keyword. llvm-svn: 161467
-