| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
|
|
|
|
| |
- PR3463, PR3398, <rdar://problem/6553401> crash on relocatable
symbol addresses as constants in static locals.
- There are many more scenarious we could handle (like arithmetic on
such an int) but this is the main use case.
llvm-svn: 65074
|
| |
|
|
| |
llvm-svn: 65073
|
| |
|
|
|
|
|
| |
appear to be constant. I'll probably redo this and throw it all away
later once we have codegen for BlockDeclRefExprs.
llvm-svn: 65070
|
| |
|
|
|
|
| |
- Prep for handling lvalues, no intended functionality change.
llvm-svn: 65063
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
manual setting of the Result.
- Idiom now enforces that result will always have correct width and
type; this exposed three new bugs:
o Enum constant decl value can have different width than type
(PR3173).
o EvaluateInteger should not run an IntExprEvaluator over
non-integral expressions.
o FloatExprEvaluate was not handling casts correctly (it was
evaluating the cast in the IntExprEvaluator!).
llvm-svn: 65053
|
| |
|
|
|
|
| |
uniquing array types.
llvm-svn: 65046
|
| |
|
|
|
|
|
|
|
|
|
| |
- Handles assignment to Result with appropriate type.
- Simplifies & encapsulates most direct handling of the Result value;
prep for allowing IntExprEvaluator to deal with LValue APValues.
- No intended functionality change.
llvm-svn: 65038
|
| |
|
|
| |
llvm-svn: 65031
|
| |
|
|
|
|
| |
already an entry and one to insert).
llvm-svn: 65030
|
| |
|
|
| |
llvm-svn: 65029
|
| |
|
|
| |
llvm-svn: 65028
|
| |
|
|
| |
llvm-svn: 65024
|
| |
|
|
|
|
| |
expressions as well.
llvm-svn: 65013
|
| |
|
|
|
|
| |
The size calculation is improved.
llvm-svn: 64994
|
| |
|
|
| |
llvm-svn: 64972
|
| |
|
|
|
|
|
| |
and gc attrs. Add an assert to check that we never
get ExtQualType(ExtQualType(T)).
llvm-svn: 64970
|
| |
|
|
| |
llvm-svn: 64961
|
| |
|
|
|
|
| |
ir gen.
llvm-svn: 64954
|
| |
|
|
| |
llvm-svn: 64951
|
| |
|
|
| |
llvm-svn: 64946
|
| |
|
|
|
|
| |
so it shows up in -ast-dump.
llvm-svn: 64901
|
| |
|
|
|
|
| |
stuff behind a private static function.
llvm-svn: 64898
|
| |
|
|
|
|
|
|
| |
the various PPTokens that are pasted together to make it. In the course
of working on this, I discovered ParseObjCStringLiteral which needs some
work. I'll tackle it next.
llvm-svn: 64892
|
| |
|
|
|
|
|
| |
Note that one test attr-objc-gc.m fails. I will fix this
after removing these attributes from the Decl nodes.
llvm-svn: 64889
|
| |
|
|
|
|
|
| |
Add assert to isICE that, on success, result must be the same as
EvaluateAsInt()... this enforces a minimum level of sanity.
llvm-svn: 64865
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- This idiom ensures that the result will have the right width and
type.
- Tested on most of x86_64/llvm-test to satisfy my paranoia.
- This fixes at least the following bugs:
o UnaryTypeTraitExpr wasn't setting the width correctly.
o Arithmetic on _Bool wasn't setting the width correctly.
And probably a number more.
llvm-svn: 64864
|
| |
|
|
|
|
| |
with Expr::Evaluate().
llvm-svn: 64850
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
specialization of class templates, e.g.,
template<typename T> class X;
template<> class X<int> { /* blah */ };
Each specialization is a different *Decl node (naturally), and can
have different members. We keep track of forward declarations and
definitions as for other class/struct/union types.
This is only the basic framework: we still have to deal with checking
the template headers properly, improving recovery when there are
failures, handling nested name specifiers, etc.
llvm-svn: 64848
|
| |
|
|
|
|
|
|
|
|
|
| |
- Renamed to getDeclAlignInBytes since most other query functions
work in bits.
- Fun to track down as isIntegerConstantExpr was getting it right,
but Evaluate() was getting it wrong. Maybe we should assert they
compute the same thing when they succeed?
llvm-svn: 64828
|
| |
|
|
| |
llvm-svn: 64820
|
| |
|
|
| |
llvm-svn: 64806
|
| |
|
|
|
|
| |
dyn_cast.
llvm-svn: 64805
|
| |
|
|
|
|
| |
Pass the DeclContext to ObjCIvarDecls as well.
llvm-svn: 64801
|
| |
|
|
| |
llvm-svn: 64800
|
| |
|
|
|
|
|
| |
general use; as for, objc2's gc type attributes. No
change in functionality.
llvm-svn: 64778
|
| |
|
|
|
|
|
| |
functions, so if we're declaring a static we should implicitly declare
a library function by the same name (e.g., malloc, strdup). Fixes PR3592.
llvm-svn: 64736
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
CXXRecordDecl that is used to represent class template
specializations. These are canonical declarations that can refer to
either an actual class template specialization in the code, e.g.,
template<> class vector<bool> { };
or to a template instantiation. However, neither of these features is
actually implemented yet, so really we're just using (and uniqing) the
declarations to make sure that, e.g., A<int> is a different type from
A<float>. Note that we carefully distinguish between what the user
wrote in the source code (e.g., "A<FLOAT>") and the semantic entity it
represents (e.g., "A<float, int>"); the former is in the sugared Type,
the latter is an actual Decl.
llvm-svn: 64716
|
| |
|
|
|
|
|
|
| |
Doug: please verify that it is expected that LastIdx can be less that
NumInits. And perhaps add a comment so that Chris doesn't break your
code. :)
llvm-svn: 64688
|
| |
|
|
| |
llvm-svn: 64684
|
| |
|
|
|
|
| |
suggestion
llvm-svn: 64681
|
| |
|
|
| |
llvm-svn: 64680
|
| |
|
|
|
|
| |
to the LIBBUILTIN macro
llvm-svn: 64676
|
| |
|
|
| |
llvm-svn: 64672
|
| |
|
|
|
|
| |
the same.
llvm-svn: 64657
|
| |
|
|
| |
llvm-svn: 64650
|
| |
|
|
|
|
|
|
| |
if a new declaration context Decl appeared, the necessary changes
would be in one place. Since, now, only DeclNodes.def needs to be modified, move things out-of-line and simplify the DeclContext class.
llvm-svn: 64630
|
| |
|
|
|
|
|
|
|
| |
-In DeclNodes.def, only mark as DeclContexts the top classes that directly derive from DeclContext. If the Decl has subclasses,
it should be marked with DECL_CONTEXT_BASE.
-Use DeclNodes.def to automate the DeclContext::classof and DeclContext::CastTo definitions.
llvm-svn: 64629
|
| |
|
|
| |
llvm-svn: 64605
|
| |
|
|
| |
llvm-svn: 64595
|
| |
|
|
|
|
| |
like printf and malloc. Fixes PR3586
llvm-svn: 64566
|