- Sep 13, 2007
-
-
Evan Cheng authored
llvm-svn: 41893
-
- Sep 12, 2007
-
-
Ted Kremenek authored
Removed extraneous call to Observer->ObserveStmt when handling DeclRefExprs. llvm-svn: 41890
-
Steve Naroff authored
diagnostic for illegal initializers. llvm-svn: 41889
-
Ted Kremenek authored
llvm-svn: 41888
-
Ted Kremenek authored
llvm-svn: 41887
-
Ted Kremenek authored
llvm-svn: 41886
-
Ted Kremenek authored
is much simpler now. llvm-svn: 41885
-
Ted Kremenek authored
are useful for dataflow analysis: CFGStmtVisitor and DataflowStmtVisitor. CFGStmtVisitor is the same as StmtVisitor is that it has separate visitors for "root" statements in a CFGBlock (statements that have a designated slot int the list of statements in a CFGBlock). It also recognizes statements that have implicit control-flow, and calls special visitor methods for those. DataflowStmtVisitor extends CFGStmtVisitor to serve as a template for implementing transfer functions. It does a pre-/post-order traversal of substatements depending on whether we are doing a forward/backward analysis. It also has special handling for implicit-control-flow statements so that they are visited only once. llvm-svn: 41884
-
Chris Lattner authored
llvm-svn: 41881
-
Fariborz Jahanian authored
to use of @property. llvm-svn: 41880
-
Chris Lattner authored
using it for live-in values etc. llvm-svn: 41879
-
Hartmut Kaiser authored
Removed clang solution file for VC++, which didn't work properly because of hard coded paths in the llvm project files. Changed windows detection to use LLVM pp constant. llvm-svn: 41878
-
Steve Naroff authored
Fix the following bug submitted by Ted Kremenek: void func() { int xx = xx; // incorrectly diagnosed 'xx' as an undeclared identifier. } This smallish bug resulted in a largish fix. Here are some highlights: - Needed to make sure ParseDeclarator is called *before* parsing any initializer. Removed the "Init" argument to ParseDeclarator. - Added AddInitializerToDecl() to the Action & Sema classes. In Sema, this hook is responsible for validating the initializer and installing it into the respective decl. - Moved several semantic checks from ParseDeclarator() to FinalizeDeclaratorGroup(). Previously, this hook was only responsible for reversing a list. Now it plays a much larger semantic role. All of the above changes ended up simplifying ParseDeclarator(), which is goodness... llvm-svn: 41877
-
Dale Johannesen authored
llvm-svn: 41876
-
Dale Johannesen authored
Next round of x87 long double stuff. Getting close now, basically works. llvm-svn: 41875
-
Dale Johannesen authored
(could break hash table in ConstantFP) llvm-svn: 41874
-
Bill Wendling authored
llvm-svn: 41873
-
Daniel Berlin authored
llvm-svn: 41872
-
Evan Cheng authored
same time. Do not mark the "smaller" def as dead. llvm-svn: 41871
-
Anton Korobeynikov authored
llvm-svn: 41870
-
Anton Korobeynikov authored
llvm-svn: 41869
-
Ted Kremenek authored
This method is used to determine if an expression contains implicit control-flow, and thus appears in a distinct statement slot in the CFG. For example: (1) x = ... ? ... ? ... logically becomes: (1) ... ? ... : ... (a unique statement slot for the ternary ?) (2) x = [E1] (where E1 is actually the ConditionalOperator*) A client of the CFG, when walking the statement at (2), will encounter E1. In this case, hasImplicitControlFlow(E1) == true, and the client will know that the expression E1 is explicitly placed into its own statement slot to capture the implicit control-flow it has. llvm-svn: 41868
-
- Sep 11, 2007
-
-
Ted Kremenek authored
where not reversing the order of their subexpression blocks. Added feature where CallExprs are placed in their own statement slot in a CFGBlock. Thus we have a designated "return site" within a CFGBlock when reasoning about function calls. llvm-svn: 41866
-
Steve Naroff authored
- Add an ObjcIvarDecl AST node (a subclass of FieldDecl). - Instantiate the node in Sema::ParseField(), based on the type of the TagDecl. - Add Sema::ObjcAddInstanceVariable(), responsible for adorning/adding the ObjcIvarDecl. llvm-svn: 41864
-
Evan Cheng authored
llvm-svn: 41863
-
Evan Cheng authored
llvm-svn: 41862
-
Evan Cheng authored
llvm-svn: 41861
-
Fariborz Jahanian authored
llvm-svn: 41860
-
Dale Johannesen authored
llvm-svn: 41859
-
Dale Johannesen authored
access to bits). Use them in place of float and double interfaces where appropriate. First bits of x86 long double constants handling (untested, probably does not work). llvm-svn: 41858
-
Daniel Berlin authored
llvm-svn: 41855
-
Bill Wendling authored
llvm-svn: 41854
-
Ted Kremenek authored
if the assigned value is a constant expression, e.g.: int x = 0; We then check to see if "x" is ever reassigned later. If so, we don't emit a warning. This is because programmers frequently use defensive programming to make sure a variable has a defined value. llvm-svn: 41853
-
Bill Wendling authored
information for EH. llvm-svn: 41852
-
Chris Lattner authored
llvm-svn: 41851
-
Chris Lattner authored
llvm-svn: 41850
-
Chris Lattner authored
llvm-svn: 41849
-
Ted Kremenek authored
llvm-svn: 41848
-
Gabor Greif authored
warnings that some compilers diagnose llvm-svn: 41847
-
Duncan Sands authored
the underlying nested function. llvm-svn: 41846
-