]> granicus.if.org Git - clang/log
clang
16 years agoChange Expr::isLvalue() to allow the "void" type. This fixes bz2000 submitted by...
Steve Naroff [Sun, 10 Feb 2008 00:30:18 +0000 (00:30 +0000)]
Change Expr::isLvalue() to allow the "void" type. This fixes bz2000 submitted by Neil Booth.

Neil, can you point me to the place in the C99 spec that says this is allowed? I thought Expr::isLvalue() conformed to the spec, which says "C99 6.3.2.1: an lvalue is an expression with an object type or an incomplete type other than void.". Please advise.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46917 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoImplement __builtin_va_copy
Anders Carlsson [Sat, 9 Feb 2008 20:26:43 +0000 (20:26 +0000)]
Implement __builtin_va_copy

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46911 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoBehave correctly if a constraint expression is invalid.
Anders Carlsson [Sat, 9 Feb 2008 19:57:29 +0000 (19:57 +0000)]
Behave correctly if a constraint expression is invalid.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46910 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoFix spelling in comment.
Steve Naroff [Sat, 9 Feb 2008 17:25:18 +0000 (17:25 +0000)]
Fix spelling in comment.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46906 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoFix <rdar://problem/5733511> clang doesn't emit error for const array.
Steve Naroff [Sat, 9 Feb 2008 16:59:44 +0000 (16:59 +0000)]
Fix <rdar://problem/5733511> clang doesn't emit error for const array.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46905 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoExpose the logic for field address codegen; it is needed for aggregate
Eli Friedman [Sat, 9 Feb 2008 08:50:58 +0000 (08:50 +0000)]
Expose the logic for field address codegen; it is needed for aggregate
initializers, and I don't want to duplicate the bitfield-handling code.
(I'll send a patch for aggregate initializers to the mailing
list sometime soon.)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46904 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoA bunch-o changes to fix <rdar://problem/5716046> incomplete implementation of ObjC...
Steve Naroff [Fri, 8 Feb 2008 22:06:17 +0000 (22:06 +0000)]
A bunch-o changes to fix <rdar://problem/5716046> incomplete implementation of ObjC class warning is incomplete

As part of this fix, I made a low-level change to the text diagnostics machinery (to basically avoid printing duplicate source lines/carets when you have multiple diagnostics that refer to the same exact place). For now, this only happens with we don't have a source range (could be extended to support source ranges as well).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46897 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoSplit off expression-bindings in ValueState from variable-bindings.
Ted Kremenek [Fri, 8 Feb 2008 21:10:02 +0000 (21:10 +0000)]
Split off expression-bindings in ValueState from variable-bindings.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46892 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoChanged "GetValue" methods to take an
Ted Kremenek [Fri, 8 Feb 2008 20:29:23 +0000 (20:29 +0000)]
Changed "GetValue" methods to take an
Expr* instead of a Stmt*, since we only
store bindings for Expr*.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46891 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoFix a bitfield regression. Reported by Anders Carlsson.
Lauro Ramos Venancio [Fri, 8 Feb 2008 19:46:46 +0000 (19:46 +0000)]
Fix a bitfield regression. Reported by Anders Carlsson.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46889 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoMoved implementation of "RemoveDeadBindings" from the main
Ted Kremenek [Fri, 8 Feb 2008 19:17:19 +0000 (19:17 +0000)]
Moved implementation of "RemoveDeadBindings" from the main
GRConstants logic to ValueStateManager.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46888 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoRemoved ability to create symbol bindings
Ted Kremenek [Fri, 8 Feb 2008 19:08:13 +0000 (19:08 +0000)]
Removed ability to create symbol bindings
in VarKey and VariableBindingsTy.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46887 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoUse getLogicalLineNumber() in FuzzyParseMicrosoftAsmStatement(), it's more general...
Steve Naroff [Fri, 8 Feb 2008 18:01:27 +0000 (18:01 +0000)]
Use getLogicalLineNumber() in FuzzyParseMicrosoftAsmStatement(), it's more general and simplifies the code.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46885 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoMoved that clang doesn't depend on llvm-gcc above
Ted Kremenek [Fri, 8 Feb 2008 07:32:26 +0000 (07:32 +0000)]
Moved that clang doesn't depend on llvm-gcc above
the subsection of building clang with llvm.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46884 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoImplemented transfer functions for "<<" and ">>" when the RValues are
Ted Kremenek [Fri, 8 Feb 2008 07:14:58 +0000 (07:14 +0000)]
Implemented transfer functions for "<<" and ">>" when the RValues are
ConcreteInts.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46883 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdd instructions for building clang while building llvm.
Eric Christopher [Fri, 8 Feb 2008 07:10:48 +0000 (07:10 +0000)]
Add instructions for building clang while building llvm.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46881 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoImplemented transfer functions for Statement-Expressions and Commas.
Ted Kremenek [Fri, 8 Feb 2008 07:05:39 +0000 (07:05 +0000)]
Implemented transfer functions for Statement-Expressions and Commas.
Fixed bug in dispatching to the correct transfer function for |=, &=, and ^|.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46880 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoDe-^Mify file.
Eric Christopher [Fri, 8 Feb 2008 06:45:49 +0000 (06:45 +0000)]
De-^Mify file.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46879 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoSupport fuzzy parsing MS line-oriented __asm's that originate from a macro (a case...
Steve Naroff [Fri, 8 Feb 2008 03:36:19 +0000 (03:36 +0000)]
Support fuzzy parsing MS line-oriented __asm's that originate from a macro (a case where we can't obtain source line info). As the test case indicates, we don't currently support line-oriented asm statements that mix file/macro body tokens.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46878 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoMore variable renamings.
Ted Kremenek [Fri, 8 Feb 2008 03:02:48 +0000 (03:02 +0000)]
More variable renamings.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46875 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoRenamed InvalidValue to UnknownVal.
Ted Kremenek [Fri, 8 Feb 2008 02:57:34 +0000 (02:57 +0000)]
Renamed InvalidValue to UnknownVal.
Renamed UninitializedValue to UninitializedVal.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46874 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoFix indentation.
Eli Friedman [Fri, 8 Feb 2008 01:24:30 +0000 (01:24 +0000)]
Fix indentation.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46873 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoDetabify SemaExpr. My text editor defaults to 8 spaces per tab, so it
Eli Friedman [Fri, 8 Feb 2008 01:19:44 +0000 (01:19 +0000)]
Detabify SemaExpr. My text editor defaults to 8 spaces per tab, so it
gets kind of annoying.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46872 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoImprove diagnostic for illegal array initialization.
Eli Friedman [Fri, 8 Feb 2008 00:48:24 +0000 (00:48 +0000)]
Improve diagnostic for illegal array initialization.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46869 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoPut back the top-level asm code; all tests pass now.
Anders Carlsson [Fri, 8 Feb 2008 00:33:21 +0000 (00:33 +0000)]
Put back the top-level asm code; all tests pass now.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46868 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoBack out 46855 for now, it causes test failures on Darwin.
Anders Carlsson [Fri, 8 Feb 2008 00:23:11 +0000 (00:23 +0000)]
Back out 46855 for now, it causes test failures on Darwin.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46867 91177308-0d34-0410-b5e6-96231b3b80d8

16 years ago- Add support for fuzzy parsing line-oriented __asm's (yuck).
Steve Naroff [Thu, 7 Feb 2008 23:24:32 +0000 (23:24 +0000)]
- Add support for fuzzy parsing line-oriented __asm's (yuck).
- Change handling of __w64 to a built-in macro.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46864 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoSimplify bitfield codegen.
Lauro Ramos Venancio [Thu, 7 Feb 2008 19:29:53 +0000 (19:29 +0000)]
Simplify bitfield codegen.
Fix codegen of struct { short a[3]; int b:15; }.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46859 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoFix codegen of
Lauro Ramos Venancio [Thu, 7 Feb 2008 18:18:58 +0000 (18:18 +0000)]
Fix codegen of
struct {
  char a[3];
  unsigned char b:1;
};

Fix PR1990.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46856 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoHandle top-level asm declarations.
Anders Carlsson [Thu, 7 Feb 2008 17:19:11 +0000 (17:19 +0000)]
Handle top-level asm declarations.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46855 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoMinor cleanup from yesterday's -fms-extension commit. Move __int* MS keywords to...
Steve Naroff [Thu, 7 Feb 2008 15:26:07 +0000 (15:26 +0000)]
Minor cleanup from yesterday's -fms-extension commit. Move __int* MS keywords to predefined macros. This removes some of the MS-madness from Parser::ParseDeclarationSpecifiers().

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46852 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdded some more opcode pretty-printing.
Ted Kremenek [Thu, 7 Feb 2008 15:20:13 +0000 (15:20 +0000)]
Added some more opcode pretty-printing.
Minor cleanups with generating nodes for NULL-pointer dereferences.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46851 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdded proof-of-concept NULL pointer diagnostics to GRConstants.
Ted Kremenek [Thu, 7 Feb 2008 06:33:19 +0000 (06:33 +0000)]
Added proof-of-concept NULL pointer diagnostics to GRConstants.
Modified the driver to pass the Diagnostic object to GRConstants.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46847 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdded support to distinguish between both implicit and explicit null dereferences.
Ted Kremenek [Thu, 7 Feb 2008 06:04:18 +0000 (06:04 +0000)]
Added support to distinguish between both implicit and explicit null dereferences.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46846 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoImplement support for the extremely atrocious MS /##/ extension,
Chris Lattner [Thu, 7 Feb 2008 06:03:59 +0000 (06:03 +0000)]
Implement support for the extremely atrocious MS /##/ extension,
which pastes together a comment.  This is only enabled with
-fms-extensions of course.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46845 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agothese aren't tokens.
Chris Lattner [Thu, 7 Feb 2008 05:57:50 +0000 (05:57 +0000)]
these aren't tokens.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46844 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdded recording of "implicit" NULL dereferences of symbolic pointers.
Ted Kremenek [Thu, 7 Feb 2008 05:48:01 +0000 (05:48 +0000)]
Added recording of "implicit" NULL dereferences of symbolic pointers.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46843 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdd a FIXME for alternate address spaces.
Eli Friedman [Thu, 7 Feb 2008 05:24:51 +0000 (05:24 +0000)]
Add a FIXME for alternate address spaces.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46841 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoget the tree building again
Chris Lattner [Thu, 7 Feb 2008 05:01:42 +0000 (05:01 +0000)]
get the tree building again

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46840 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdded several guards in transfer functions for "InvalidValues".
Ted Kremenek [Thu, 7 Feb 2008 04:16:04 +0000 (04:16 +0000)]
Added several guards in transfer functions for "InvalidValues".

Fixed bug in RemoveDeadBindings by implementing a simple "mark-and-sweep"
cleaner over the bindings, starting from the Decls and block-level expressions
that are considered "live" by the Liveness analysis.

Fixed bug in isa<> implementation for class LValue.

Added "VisitDeclRefExpr" to GRConstants so that we explicitly bind the current
value of variable to the Block-level Expression (i.e., when the DeclRefExpr is
at the CFGBlock level).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46839 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoImplement -fms-extensions. This allows us to fuzzy parse non-standard MS constructs...
Steve Naroff [Thu, 7 Feb 2008 03:50:06 +0000 (03:50 +0000)]
Implement -fms-extensions. This allows us to fuzzy parse non-standard MS constructs used in "windows.h".

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46838 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoFixed bug in LiveVariables analysis where Block-level exprs appearing
Ted Kremenek [Thu, 7 Feb 2008 02:38:55 +0000 (02:38 +0000)]
Fixed bug in LiveVariables analysis where Block-level exprs appearing
as the initializers for DeclStmts were not being registered as being
live at the start of the DeclStmt.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46837 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdded transfer function logic for ReturnStmts.
Ted Kremenek [Thu, 7 Feb 2008 01:08:27 +0000 (01:08 +0000)]
Added transfer function logic for ReturnStmts.
Fixed insidious bug in handling dereferences.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46835 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoMinor reordering of the serialization of the fields of MemberExpr to result
Ted Kremenek [Wed, 6 Feb 2008 23:03:14 +0000 (23:03 +0000)]
Minor reordering of the serialization of the fields of MemberExpr to result
in a smaller encoding on disk.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46832 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoMajor code refactoring/cleanup with transfer function logic. Now the
Ted Kremenek [Wed, 6 Feb 2008 22:50:25 +0000 (22:50 +0000)]
Major code refactoring/cleanup with transfer function logic.  Now the
code structure is more suitable for additional symbolic analysis.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46831 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoMake sure to propagate qualifiers through the member operator.
Eli Friedman [Wed, 6 Feb 2008 22:48:16 +0000 (22:48 +0000)]
Make sure to propagate qualifiers through the member operator.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46830 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoexplicitly document that return statement argument does not necessarily follow the...
Chris Lattner [Wed, 6 Feb 2008 21:20:34 +0000 (21:20 +0000)]
explicitly document that return statement argument does not necessarily follow the result type of the function.  Add testcase.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46823 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoUse the subprocess module instead of os.system. Patch by Sam Bishop.
Anders Carlsson [Wed, 6 Feb 2008 19:03:27 +0000 (19:03 +0000)]
Use the subprocess module instead of os.system. Patch by Sam Bishop.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46819 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdded main transfer function support for unary operator "!".
Ted Kremenek [Wed, 6 Feb 2008 17:56:00 +0000 (17:56 +0000)]
Added main transfer function support for unary operator "!".

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46815 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdded assumption logic for symbolic non-lvalues when used in conditions such as
Ted Kremenek [Wed, 6 Feb 2008 17:32:17 +0000 (17:32 +0000)]
Added assumption logic for symbolic non-lvalues when used in conditions such as
"if(x)". On the true branch we know the value is != 0, and on the false branch
we know it is 0.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46814 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdd pointer + int (and vice versa) to the constant emitter.
Anders Carlsson [Wed, 6 Feb 2008 07:23:14 +0000 (07:23 +0000)]
Add pointer + int (and vice versa) to the constant emitter.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46812 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoGenerate code for the various __builtin_ctz functions.
Anders Carlsson [Wed, 6 Feb 2008 07:19:27 +0000 (07:19 +0000)]
Generate code for the various __builtin_ctz functions.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46811 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agonow that ConvertTagDeclType is nice and simple, use it from UpdateCompletedType.
Chris Lattner [Wed, 6 Feb 2008 06:06:49 +0000 (06:06 +0000)]
now that ConvertTagDeclType is nice and simple, use it from UpdateCompletedType.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46809 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agosimplify and speed up type refinement logic. No functionality change.
Chris Lattner [Wed, 6 Feb 2008 06:03:51 +0000 (06:03 +0000)]
simplify and speed up type refinement logic.  No functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46808 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoonly convert the type name once, not each type it is refined.
Chris Lattner [Wed, 6 Feb 2008 05:48:29 +0000 (05:48 +0000)]
only convert the type name once, not each type it is refined.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46807 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoFix the codegen of structs with flexible array members.
Eli Friedman [Wed, 6 Feb 2008 05:33:51 +0000 (05:33 +0000)]
Fix the codegen of structs with flexible array members.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46806 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agosimplify a bunch of code.
Chris Lattner [Wed, 6 Feb 2008 05:29:46 +0000 (05:29 +0000)]
simplify a bunch of code.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46805 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agorename TypeHolderMap to TypeCache, which more aptly describes what it is.
Chris Lattner [Wed, 6 Feb 2008 05:21:55 +0000 (05:21 +0000)]
rename TypeHolderMap to TypeCache, which more aptly describes what it is.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46804 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agosplit tagged decl layout into its own method.
Chris Lattner [Wed, 6 Feb 2008 05:18:32 +0000 (05:18 +0000)]
split tagged decl layout into its own method.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46803 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoonly update the llvm type for a struct when we used the struct
Chris Lattner [Wed, 6 Feb 2008 05:12:09 +0000 (05:12 +0000)]
only update the llvm type for a struct when we used the struct
previously in an opaque context.  If we didn't do this,
computing its layout could be wasted: just be lazy.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46802 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agosink more of the type related code into CodeGenTypes.
Chris Lattner [Wed, 6 Feb 2008 05:08:19 +0000 (05:08 +0000)]
sink more of the type related code into CodeGenTypes.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46801 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agocodegen static variables in a function into a different namespace from
Chris Lattner [Wed, 6 Feb 2008 04:54:32 +0000 (04:54 +0000)]
codegen static variables in a function into a different namespace from
static variables outside functions.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46800 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoBe a bit stricter about array type compatibility.
Eli Friedman [Wed, 6 Feb 2008 04:53:22 +0000 (04:53 +0000)]
Be a bit stricter about array type compatibility.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46799 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoFinish off the refactoring of type handling stuff. Now we recompile every
Chris Lattner [Wed, 6 Feb 2008 04:51:19 +0000 (04:51 +0000)]
Finish off the refactoring of type handling stuff.  Now we recompile every
tag decl after it has been completed

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46798 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoFixed bug in '=' transfer function: RHS does not have to be a non-LValue.
Ted Kremenek [Wed, 6 Feb 2008 04:41:14 +0000 (04:41 +0000)]
Fixed bug in '=' transfer function: RHS does not have to be a non-LValue.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46797 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoFixed signedness bug in cast transfer function when casting integers to pointers.
Ted Kremenek [Wed, 6 Feb 2008 04:31:33 +0000 (04:31 +0000)]
Fixed signedness bug in cast transfer function when casting integers to pointers.
Removed lval::SymIntConstraintVal; wrappers for symbolic constraints are not lvalues (only integers that evaluate to !0 or 0).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46796 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoModified state pretty-printing to include the '!=' and '==' constraints on
Ted Kremenek [Wed, 6 Feb 2008 03:56:15 +0000 (03:56 +0000)]
Modified state pretty-printing to include the '!=' and '==' constraints on
symbols (for constant integers).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46795 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoDisabled operator= for ValueStateImpl.
Ted Kremenek [Wed, 6 Feb 2008 02:50:36 +0000 (02:50 +0000)]
Disabled operator= for ValueStateImpl.
ValueState no longer inherits FoldingSetNode (not needed).
Removed redundant operator= implementation for ValueState (it simply did the default behavior).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46794 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoFixed bug when allocating a ValueStateImpl object in getPersistentState()
Ted Kremenek [Wed, 6 Feb 2008 02:45:20 +0000 (02:45 +0000)]
Fixed bug when allocating a ValueStateImpl object in getPersistentState()
using the bump-pointer allocator and a placed new; we accidentally allocated
a ValueStateImpl* instead, causing an overrun when we did a placed new().

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46793 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agomove the codegen ASTConsumer out of the driver into libcodegen,
Chris Lattner [Wed, 6 Feb 2008 02:01:47 +0000 (02:01 +0000)]
move the codegen ASTConsumer out of the driver into libcodegen,
eliminating a bunch of forwarding methods and generally
simplifying things.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46792 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agopull .ll and .bc writing out of the ASTConsumer destructors into some top
Chris Lattner [Wed, 6 Feb 2008 01:42:25 +0000 (01:42 +0000)]
pull .ll and .bc writing out of the ASTConsumer destructors into some top
level code in clang.  This is a cleanup, but does implement "-o" for
-emit-llvm.  One effect of this is that "clang foo.c -emit-llvm" will now
emit into foo.ll instead of stdout.  Use "clang foo.c -emit-llvm -o -" or
"clang < foo.c -emit-llvm" to get the old behavior.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46791 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdded some skeleton code for performing "assume" on symbols: e.g. assume($0 != 0).
Ted Kremenek [Wed, 6 Feb 2008 00:54:14 +0000 (00:54 +0000)]
Added some skeleton code for performing "assume" on symbols: e.g. assume($0 != 0).
This action will add constraints to the possible values of a symbol.
Still needs to be debugged.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46789 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoinform astconsumer about tagdecls as they are defined.
Chris Lattner [Wed, 6 Feb 2008 00:51:33 +0000 (00:51 +0000)]
inform astconsumer about tagdecls as they are defined.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46788 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agopass the astconsumer into Sema's ctor, clean up some stuff in
Chris Lattner [Wed, 6 Feb 2008 00:46:58 +0000 (00:46 +0000)]
pass the astconsumer into Sema's ctor, clean up some stuff in
Sema::ActOnTranslationUnitScope.  The various ObjC pieces at the top
of Sema.cpp should be moved into SemaObjC or something.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46787 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agorename ASTSTreamer.{h|cpp} -> ParseAST.{h|cpp}
Chris Lattner [Wed, 6 Feb 2008 00:23:21 +0000 (00:23 +0000)]
rename ASTSTreamer.{h|cpp} -> ParseAST.{h|cpp}

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46786 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agokill the ASTStreamer class, inlining it into its only client: clang::ParseAST
Chris Lattner [Wed, 6 Feb 2008 00:15:02 +0000 (00:15 +0000)]
kill the ASTStreamer class, inlining it into its only client: clang::ParseAST

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46785 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoEven more inline asm codegen fixes.
Anders Carlsson [Wed, 6 Feb 2008 00:11:32 +0000 (00:11 +0000)]
Even more inline asm codegen fixes.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46784 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agosimple implementation of __builtin_alloca
Nate Begeman [Wed, 6 Feb 2008 00:02:50 +0000 (00:02 +0000)]
simple implementation of __builtin_alloca

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46783 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdd a FIXME to clarify previous commit/experiment.
Steve Naroff [Tue, 5 Feb 2008 23:59:27 +0000 (23:59 +0000)]
Add a FIXME to clarify previous commit/experiment.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46782 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoHandle the memory clobber.
Anders Carlsson [Tue, 5 Feb 2008 23:30:20 +0000 (23:30 +0000)]
Handle the memory clobber.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46780 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoImprovements to inline asm code generation.
Anders Carlsson [Tue, 5 Feb 2008 23:18:57 +0000 (23:18 +0000)]
Improvements to inline asm code generation.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46779 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdded pretty-printing support for lval::SymIntConstraintVal and
Ted Kremenek [Tue, 5 Feb 2008 23:08:41 +0000 (23:08 +0000)]
Added pretty-printing support for lval::SymIntConstraintVal and
nonlval::SymIntConstraintVal.

Reworked transfer function for '==' and '!=' for LValues to return
SymIntConstraintVal when comparing a symbol with a constant.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46778 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoHandle simple asm statements correctly.
Anders Carlsson [Tue, 5 Feb 2008 23:03:50 +0000 (23:03 +0000)]
Handle simple asm statements correctly.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46777 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agosimplify some code.
Chris Lattner [Tue, 5 Feb 2008 22:40:55 +0000 (22:40 +0000)]
simplify some code.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46774 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoMoved implementation of cast<> for SymbolData closer to SymbolData's definition.
Ted Kremenek [Tue, 5 Feb 2008 22:21:54 +0000 (22:21 +0000)]
Moved implementation of cast<> for SymbolData closer to SymbolData's definition.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46772 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdded new "NonLValue" class: SymIntConstraintVal. This class represents a binary
Ted Kremenek [Tue, 5 Feb 2008 22:10:48 +0000 (22:10 +0000)]
Added new "NonLValue" class: SymIntConstraintVal. This class represents a binary
contraint between a symbol and an integer constant.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46771 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoMoved subclasses of LValue and NonLValue into their own namespaces.
Ted Kremenek [Tue, 5 Feb 2008 21:52:21 +0000 (21:52 +0000)]
Moved subclasses of LValue and NonLValue into their own namespaces.
This noticeably cleans up the naming of these classes.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46770 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdded "SymIntConstraint", a utility class to represent intermediate values for
Ted Kremenek [Tue, 5 Feb 2008 21:32:43 +0000 (21:32 +0000)]
Added "SymIntConstraint", a utility class to represent intermediate values for
transfer function evaluation that represent constraints between symbolic values
and constant integers.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46769 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoFix Parser::ParseObjCTryStmt() to allow for trailing @-keyword statements/expressions.
Steve Naroff [Tue, 5 Feb 2008 21:27:35 +0000 (21:27 +0000)]
Fix Parser::ParseObjCTryStmt() to allow for trailing @-keyword statements/expressions.

This bug fix is the result of not having 2-token lookahead to recognize specific @-keywords.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46768 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdd some binops.
Anders Carlsson [Tue, 5 Feb 2008 20:54:21 +0000 (20:54 +0000)]
Add some binops.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46766 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoMore improvements to inline asm CG.
Anders Carlsson [Tue, 5 Feb 2008 20:01:53 +0000 (20:01 +0000)]
More improvements to inline asm CG.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46762 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdded "batch" processing versions of Nodify and SetValue. Created typedefs
Ted Kremenek [Tue, 5 Feb 2008 19:35:18 +0000 (19:35 +0000)]
Added "batch" processing versions of Nodify and SetValue.  Created typedefs
for buffers for RValues and States.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46759 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdded a "ConstantNotEq" map to ValueState (and added necessary typedefs and factory...
Ted Kremenek [Tue, 5 Feb 2008 18:51:06 +0000 (18:51 +0000)]
Added a "ConstantNotEq" map to ValueState (and added necessary typedefs and factory objects to ValueStateManager).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46758 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdded some comments.
Ted Kremenek [Tue, 5 Feb 2008 18:24:17 +0000 (18:24 +0000)]
Added some comments.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46756 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoRenamed typedef "iterator" in ValueState to "vb_iterator" (for "VariableBindings").
Ted Kremenek [Tue, 5 Feb 2008 18:19:15 +0000 (18:19 +0000)]
Renamed typedef "iterator" in ValueState to "vb_iterator" (for "VariableBindings").

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46755 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoReordered fields/methods in ValueState to make it more aesthetically pleasing.
Ted Kremenek [Tue, 5 Feb 2008 18:17:58 +0000 (18:17 +0000)]
Reordered fields/methods in ValueState to make it more aesthetically pleasing.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46754 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoUse correct flag value.
Anders Carlsson [Tue, 5 Feb 2008 17:26:36 +0000 (17:26 +0000)]
Use correct flag value.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46752 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAppend input argument to args vector.
Anders Carlsson [Tue, 5 Feb 2008 16:57:38 +0000 (16:57 +0000)]
Append input argument to args vector.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46751 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdd code generation for inline asm statements.
Anders Carlsson [Tue, 5 Feb 2008 16:35:33 +0000 (16:35 +0000)]
Add code generation for inline asm statements.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46750 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agorewrite some of the type refinement code to eliminate dangling pointers
Chris Lattner [Tue, 5 Feb 2008 08:06:13 +0000 (08:06 +0000)]
rewrite some of the type refinement code to eliminate dangling pointers
simplify the code and generally make it more robust.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46745 91177308-0d34-0410-b5e6-96231b3b80d8