]>
granicus.if.org Git - clang/log
Anders Carlsson [Tue, 4 Mar 2008 21:11:29 +0000 (21:11 +0000)]
Make intrinsics always_inline.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47902
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Tue, 4 Mar 2008 20:40:11 +0000 (20:40 +0000)]
For the transfer function of DeclStmt, for now initialize the values of
structs (local variables) to Unknown instead of Undefined. (added FIXME to initialize *members* of struct to undefined)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47901
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Tue, 4 Mar 2008 19:52:15 +0000 (19:52 +0000)]
Fixed another obscure node-caching bug.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47898
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Tue, 4 Mar 2008 18:30:35 +0000 (18:30 +0000)]
Implemented "print" method for ValueState.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47894
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 4 Mar 2008 18:08:48 +0000 (18:08 +0000)]
The operand to the visibility attribute is required to be a quoted string, not a bare identifier.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47893
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Tue, 4 Mar 2008 17:47:18 +0000 (17:47 +0000)]
TargetInfo objects now own the TargetInfoImpl objects they refer to.
TargetInfo::AddSecondaryTarget is now private, as it is only used during
object construction.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47891
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Tue, 4 Mar 2008 04:18:04 +0000 (04:18 +0000)]
Add transfer function support for the default initialization of static
variables that are pointers or integers.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47880
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Tue, 4 Mar 2008 00:56:45 +0000 (00:56 +0000)]
Fixed insidious state propagation bug that would sometimes cause the state
to bifurcate at the wrong places and not propagate at others.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47876
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Tue, 4 Mar 2008 00:42:54 +0000 (00:42 +0000)]
Enhanced pretty-printing of undefined-argument errors.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47873
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 3 Mar 2008 21:17:42 +0000 (21:17 +0000)]
move deprecated -> attributes.c
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47856
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Mon, 3 Mar 2008 19:34:30 +0000 (19:34 +0000)]
Temporarily rename mmintrin.h so that it won't clash with the system header. It will be renamed back once the few remaining methods have been implemented.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47852
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Mon, 3 Mar 2008 19:29:58 +0000 (19:29 +0000)]
Fixed subtle caching bug in ExplodedGraph that would cause some nodes to
be incorrectly merged together.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47851
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Mon, 3 Mar 2008 19:29:06 +0000 (19:29 +0000)]
Add mmintrin.h header
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47850
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Mon, 3 Mar 2008 16:52:27 +0000 (16:52 +0000)]
Only allow a "noreturn" attribute to be affixed to a FunctionDecl.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47844
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Mon, 3 Mar 2008 16:50:00 +0000 (16:50 +0000)]
Added TODO.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47843
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Mon, 3 Mar 2008 16:47:31 +0000 (16:47 +0000)]
Added FIXME.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47842
91177308 -0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Mon, 3 Mar 2008 14:53:09 +0000 (14:53 +0000)]
The attribute nothrow maps to llvm attribute nounwind. Fix testcase.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47841
91177308 -0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Mon, 3 Mar 2008 14:30:39 +0000 (14:30 +0000)]
Chris added this testcase with r47837. The mail only shows one todo-warning but I see 3. Strangeness. Correcting lines 16 and 24.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47840
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 3 Mar 2008 05:57:43 +0000 (05:57 +0000)]
avoid a warning.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47839
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 3 Mar 2008 03:45:26 +0000 (03:45 +0000)]
fix codegen support for functions that are nothrow and noreturn.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47838
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 3 Mar 2008 03:28:21 +0000 (03:28 +0000)]
Add a bunch of attributes, patch by Nuno Lopes.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47837
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 3 Mar 2008 03:16:03 +0000 (03:16 +0000)]
Find clang headers in the clang headers dir, search it before
the system headers dir. This produces an annoying warning:
clang.cpp:883: warning: ISO C++ forbids casting between pointer-to-function and pointer-to-object
I'm not sure how to remove it. :(
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47836
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 3 Mar 2008 01:23:30 +0000 (01:23 +0000)]
Build the clang headers.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47834
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 3 Mar 2008 01:22:28 +0000 (01:22 +0000)]
Add a makefile to build and install headers.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47833
91177308 -0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Sat, 1 Mar 2008 12:57:27 +0000 (12:57 +0000)]
ignore .ll files
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47794
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 1 Mar 2008 08:50:34 +0000 (08:50 +0000)]
Add codegen support for ObjC message expressions with the GNU runtime.
Patch by David Chisnall!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47790
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 1 Mar 2008 08:45:05 +0000 (08:45 +0000)]
Add codegen support for ObjC message expressions with the GNU runtime.
Patch by David Chisnall!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47789
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 1 Mar 2008 08:43:22 +0000 (08:43 +0000)]
newline at end of file, by David Chisnall
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47788
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 1 Mar 2008 08:32:21 +0000 (08:32 +0000)]
character literals have char type in C++ and int type in C. Patch
by Nuno Lopes for PR2089
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47787
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 1 Mar 2008 08:07:28 +0000 (08:07 +0000)]
Add support for the CPATH, C_INCLUDE_PATH, CPLUS_INCLUDE_PATH,
OBJC_INCLUDE_PATH, and OBJCPLUS_INCLUDE_PATH environment variables.
Patch by Sam Bishop!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47785
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Fri, 29 Feb 2008 23:53:11 +0000 (23:53 +0000)]
Added extra check for calls to functions where we pass undefined values
as arguments.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47778
91177308 -0d34-0410-b5e6-
96231b3b80d8
Steve Naroff [Fri, 29 Feb 2008 23:30:25 +0000 (23:30 +0000)]
Fix http://llvm.org/bugs/show_bug.cgi?id=2103.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47775
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Fri, 29 Feb 2008 23:14:48 +0000 (23:14 +0000)]
Add checks for function calls via a function pointer that is NULL, Undefined,
or otherwise a constant integer value that doesn't evaluate to an address.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47774
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Fri, 29 Feb 2008 22:32:24 +0000 (22:32 +0000)]
Minor CFG optimization: don't create separate block-level expressions for DeclStmt initializers when the initializer is a literal.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47771
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Fri, 29 Feb 2008 22:04:05 +0000 (22:04 +0000)]
When AST-dumping ObjCMessageExpr, output the selector.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47769
91177308 -0d34-0410-b5e6-
96231b3b80d8
Steve Naroff [Fri, 29 Feb 2008 21:48:07 +0000 (21:48 +0000)]
Fix http://llvm.org/bugs/show_bug.cgi?id=2106.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47768
91177308 -0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Fri, 29 Feb 2008 20:35:55 +0000 (20:35 +0000)]
Fix a crash where PI.TypeInfo has not been filled in case of missing ObjCInterfaceDecl.
Happens with Xcode 2.4.1 headers on test
Parser/objc-foreach-error-1.m
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47767
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Fri, 29 Feb 2008 20:27:50 +0000 (20:27 +0000)]
"Refinement" of hack to bound loop-traversals: visit any block at a maximum of 3 times along a given path.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47766
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 29 Feb 2008 18:11:31 +0000 (18:11 +0000)]
testcase for attr deprecated, by Nuno Lopes.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47757
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 29 Feb 2008 17:10:38 +0000 (17:10 +0000)]
make include guards more unique.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47754
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 29 Feb 2008 16:48:43 +0000 (16:48 +0000)]
Add support for attribute(deprecated), patch by Nuno Lopes!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47753
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Thu, 28 Feb 2008 20:38:16 +0000 (20:38 +0000)]
Added simple hack to reduce redundant warnings from the checker:
Cache the location of the error. Don't emit the same
warning for the same error type that occurs at the same program
location but along a different path.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47727
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Thu, 28 Feb 2008 20:32:03 +0000 (20:32 +0000)]
Added checking for undefined results of '<<' and '>>' (shifting by too many bits, etc.)
This current implementation only works when both operands are concrete values; later we will add support for symbolic values.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47726
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Thu, 28 Feb 2008 19:45:29 +0000 (19:45 +0000)]
Implementation of the first clang-native header, stdbool.h. Comments
welcome.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47724
91177308 -0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Thu, 28 Feb 2008 14:59:26 +0000 (14:59 +0000)]
Updated clang webpage to hint at "make update". Also
changed "very early" to "early" when talking about
the state of clang.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47718
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Thu, 28 Feb 2008 10:21:43 +0000 (10:21 +0000)]
Merged ValueState and ValueStateImpl into just ValueState, with GRExprEngine::StateTy just becoming ValueState*.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47714
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Thu, 28 Feb 2008 09:25:22 +0000 (09:25 +0000)]
Renamed "Uninitialized" -> "Undefined" in path-sensitive value tracking engine.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47713
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Wed, 27 Feb 2008 22:18:07 +0000 (22:18 +0000)]
Added parsing of attributes for functions.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47693
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Wed, 27 Feb 2008 20:47:56 +0000 (20:47 +0000)]
Fixed use of an uninitialized variable.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47691
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Wed, 27 Feb 2008 20:43:44 +0000 (20:43 +0000)]
End paths when calling a function marked "noreturn."
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47690
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Wed, 27 Feb 2008 20:43:06 +0000 (20:43 +0000)]
Added support for attribute "noreturn."
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47689
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Wed, 27 Feb 2008 19:21:33 +0000 (19:21 +0000)]
Small tweaks to the transfer function for DeclStmt: do not mark external global
variables as uninitialized, and only "initialize" static function variables.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47683
91177308 -0d34-0410-b5e6-
96231b3b80d8
Lauro Ramos Venancio [Wed, 27 Feb 2008 18:46:32 +0000 (18:46 +0000)]
Disable internalize. Unfortunately, the configure scripts are not ready for some link time optimizations.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47682
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Wed, 27 Feb 2008 18:39:48 +0000 (18:39 +0000)]
Removed VarDecl::hasStaticStorage() (redundant with hasGlobalStorage())
Removed VarDecl::hasAutoStorage() (only used by hasLocalStorage())
Merged logic from VarDecl::hasAutoStorage() into VarDecl::hasLocalStorage(),
and expanded (fixed) the logic of hasLocalStorage() to handle Extern and PrivateExtern.
Renamed Expr::hasStaticStorage() to Expr::hasGlobalStorage().
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47681
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Wed, 27 Feb 2008 17:56:16 +0000 (17:56 +0000)]
Added string "[CHECKER]" to the output diagnostics produced by the GRSimpleVals analysis.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47678
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Wed, 27 Feb 2008 17:33:02 +0000 (17:33 +0000)]
Fixed edge-case in CFG construction where goto jumps would not always get
properly back-patched.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47675
91177308 -0d34-0410-b5e6-
96231b3b80d8
Lauro Ramos Venancio [Wed, 27 Feb 2008 16:53:36 +0000 (16:53 +0000)]
A, q and Z are valid LLVM inline asm constraints.
Fix regression in Applications/ClamAV/clamscan.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47673
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Wed, 27 Feb 2008 07:20:00 +0000 (07:20 +0000)]
Bug fix in CFG construction: Properly register the loop head as the implicit
successor of blocks created above it.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47666
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Wed, 27 Feb 2008 07:04:16 +0000 (07:04 +0000)]
Small fix to VisitLVal: this method can be called on Block-Level expressions.
In such cases, handle them just like Visit().
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47665
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Wed, 27 Feb 2008 06:47:26 +0000 (06:47 +0000)]
When analyzing a function, eagerly create symbolic values for all
globals/parameters at the beginning of the analysis.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47664
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Wed, 27 Feb 2008 06:07:00 +0000 (06:07 +0000)]
Header file cleanups: reduce number of includes; move ValueState.h into include directory tree.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47661
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Wed, 27 Feb 2008 00:46:25 +0000 (00:46 +0000)]
Similar bug fix to r47650; when processing CallExprs if we did not generate an
ExplodedNode for the Callee subexpression we would not evaluate the CallExpr
transfer function.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47651
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Wed, 27 Feb 2008 00:44:11 +0000 (00:44 +0000)]
Fixed bug in the core transfer function logic for CallExprs where we would
sometimes skip evaluating all the arguments when some arguments would not
create new ExplodedNodes.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47650
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Wed, 27 Feb 2008 00:28:17 +0000 (00:28 +0000)]
Fixed CFG construction bug that occurred when a condition for a loop spanned
multiple basic blocks (which can happen when they contain '&&', '||', '?'). The
bug was that the loop backedge when to the last block in the loop condition, not
the first.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47649
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 26 Feb 2008 23:46:22 +0000 (23:46 +0000)]
fix an interaction between -isystem . and isysroot.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47646
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Tue, 26 Feb 2008 23:37:01 +0000 (23:37 +0000)]
Fix bug when processing '?' operator: invalidate the old "Uninitialized" value of the block-level expression for ?.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47645
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Tue, 26 Feb 2008 23:04:29 +0000 (23:04 +0000)]
Added boilerplate for plug-in transfer function support for CallExprs.
GRSimpleVals performs the following action: invalidate all values passed-by-reference.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47638
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Tue, 26 Feb 2008 22:27:51 +0000 (22:27 +0000)]
Don't emit divide-by-zero errors when we divide by an unknown (not
uninitialized) value. At this point we're just too imprecise.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47636
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Tue, 26 Feb 2008 21:57:11 +0000 (21:57 +0000)]
Changed VarDecl::hasGlobalStorage() to be the negation of hasLocalStorage().
Before it was the negation of hasAutoStorage(), which is incorrect.
"Register" storage for Decls do not indicate global variables.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47630
91177308 -0d34-0410-b5e6-
96231b3b80d8
Lauro Ramos Venancio [Tue, 26 Feb 2008 21:41:45 +0000 (21:41 +0000)]
Implement codegen for the following static var init.
void g() {
static char a[10];
static char *b = a;
}
Now we can compile wget!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47627
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Tue, 26 Feb 2008 21:31:18 +0000 (21:31 +0000)]
Removed static analysis-specific diagnostics from DiagnosticKinds.def.
Use custom diagnostics for static analysis checkers. Added warnings
for dereferencing uninitialized values and divide-by-zeroes.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47626
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Tue, 26 Feb 2008 21:04:29 +0000 (21:04 +0000)]
Removed hack with toggling the signedness flag of the APSInt stored
in an EnumConstantDecl. This was made possible because of a recent fix
in the parser:
http://llvm.org/viewvc/llvm-project?rev=47581&view=rev
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47624
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Tue, 26 Feb 2008 19:40:44 +0000 (19:40 +0000)]
Small fixes to shore up overhauling of transfer function logic for '&&' and '||.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47620
91177308 -0d34-0410-b5e6-
96231b3b80d8
Lauro Ramos Venancio [Tue, 26 Feb 2008 19:19:58 +0000 (19:19 +0000)]
Fix a bug in ConvertAsmString function.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47618
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Tue, 26 Feb 2008 19:17:09 +0000 (19:17 +0000)]
optimization: no longer create ExplodedNodes for IntegerLiteral and
CharacterLiteral expressions.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47617
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Tue, 26 Feb 2008 19:05:15 +0000 (19:05 +0000)]
Major cleanup of the transfer function logic for '&&', '||', and '?'. We
now store in the state essentially which branch we took. This removes
a bunch of bogus assumptions (and likely bugs), reduces the complexity of
the implementation, and facilitates more optimizations.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47613
91177308 -0d34-0410-b5e6-
96231b3b80d8
Lauro Ramos Venancio [Tue, 26 Feb 2008 18:33:46 +0000 (18:33 +0000)]
Convert x86 target specific inline asm constraints to LLVM.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47609
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Tue, 26 Feb 2008 03:44:25 +0000 (03:44 +0000)]
Fixed inverted condition.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47590
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Tue, 26 Feb 2008 02:37:08 +0000 (02:37 +0000)]
Do include ParenExpr in the CFG; only include their subexpression.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47588
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Tue, 26 Feb 2008 02:15:56 +0000 (02:15 +0000)]
Added lazy "symbolication" of parameter variables and global variables.
Added recording of divide-by-zero and divide-by-uninitialized nodes.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47586
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 26 Feb 2008 00:51:44 +0000 (00:51 +0000)]
add parsing, ast building and pretty printing support for C++ throw expressions.
Patch by Mike Stump!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47582
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 26 Feb 2008 00:33:57 +0000 (00:33 +0000)]
Fix PR2092 by making sure the sign of the enum value follows the
sign of its type in the early exit case. No testcase, because this
doesn't manifest as a failure.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47581
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 26 Feb 2008 00:32:36 +0000 (00:32 +0000)]
fix const correctness.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47580
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Tue, 26 Feb 2008 00:22:58 +0000 (00:22 +0000)]
Fixed bug in CFG construction when a CompoundStmt ended with a NullStmt.
This caused the whole body to get dropped from the CFG.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47579
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Tue, 26 Feb 2008 00:20:52 +0000 (00:20 +0000)]
Added FIXME.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47578
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Mon, 25 Feb 2008 22:28:54 +0000 (22:28 +0000)]
Minor bug fix in LiveVariables: don't "kill" decls referenced by a DeclStmt
that aren't VarDecls.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47572
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Mon, 25 Feb 2008 22:11:40 +0000 (22:11 +0000)]
Fix a little typo... per cfe-dev, this was apparently causing test
failures on OS X in some cases. (Thank you valgrind.)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47568
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 25 Feb 2008 21:38:21 +0000 (21:38 +0000)]
clarify comment, this is undefined behavior in any case, even if it only
bits VC++ right now.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47565
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Mon, 25 Feb 2008 21:33:32 +0000 (21:33 +0000)]
doxygenify some comments.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47564
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Mon, 25 Feb 2008 21:16:03 +0000 (21:16 +0000)]
Better handling of calls to functions via function pointers.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47562
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 25 Feb 2008 21:04:36 +0000 (21:04 +0000)]
convert tabs to spaces, patch by Mike Stump!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47560
91177308 -0d34-0410-b5e6-
96231b3b80d8
Lauro Ramos Venancio [Mon, 25 Feb 2008 19:08:51 +0000 (19:08 +0000)]
Revert an incorrect part of my previuos patch.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47553
91177308 -0d34-0410-b5e6-
96231b3b80d8
Lauro Ramos Venancio [Mon, 25 Feb 2008 19:03:15 +0000 (19:03 +0000)]
Fix PR2086.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47551
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Mon, 25 Feb 2008 18:56:23 +0000 (18:56 +0000)]
Fixed bug in RemoveDeadBindings when performing the mark-and-sweep over the
symbolic store: VarDecl's inserted into the sweep may not always bind to
anything; handle this special case just like bindings to uninitialized values.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47550
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Mon, 25 Feb 2008 18:42:54 +0000 (18:42 +0000)]
Expanded transfer function support for divide-by-zero checking to include
"remainder-by-zero" checking (operator '%').
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47549
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Mon, 25 Feb 2008 18:34:45 +0000 (18:34 +0000)]
Added hack to transfer function logic to handle the case where a DeclRefExpr
wrapping an EnumConstantDecl evaluates to an integer type that has a different
signedness than the APSInt stored in the EnumConstantDecl. Will file a Bugzilla
report.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47548
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Mon, 25 Feb 2008 17:51:31 +0000 (17:51 +0000)]
Added transfer function support for checking for divide-by-zero errors.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47547
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 25 Feb 2008 04:01:39 +0000 (04:01 +0000)]
enable digraphs for C94, thanks to Neil for pointing this out.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47543
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 24 Feb 2008 19:05:57 +0000 (19:05 +0000)]
Fix PR2090, a typo in digraph processing.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47540
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 24 Feb 2008 19:04:33 +0000 (19:04 +0000)]
Update comment.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47539
91177308 -0d34-0410-b5e6-
96231b3b80d8