- Mar 08, 2012
-
-
Rafael Espindola authored
llvm-svn: 152317
-
Rafael Espindola authored
llvm-svn: 152316
-
Richard Smith authored
llvm-svn: 152303
-
Richard Smith authored
user-defined-floating-literal. Support for raw forms of these literals to follow. llvm-svn: 152302
-
Stepan Dyatkovskiy authored
http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20120130/136146.html Implemented CaseIterator and it solves almost all described issues: we don't need to mix operand/case/successor indexing anymore. Base iterator class is implemented as a template since it may be initialized either from "const SwitchInst*" or from "SwitchInst*". ConstCaseIt is just a read-only iterator. CaseIt is read-write iterator; it allows to change case successor and case value. Usage of iterator allows totally remove resolveXXXX methods. All indexing convertions done automatically inside the iterator's getters. Main way of iterator usage looks like this: SwitchInst *SI = ... // intialize it somehow for (SwitchInst::CaseIt i = SI->caseBegin(), e = SI->caseEnd(); i != e; ++i) { BasicBlock *BB = i.getCaseSuccessor(); ConstantInt *V = i.getCaseValue(); // Do something. } If you want to convert case number to TerminatorInst successor index, just use getSuccessorIndex iterator's method. If you want initialize iterator from TerminatorInst successor index, use CaseIt::fromSuccessorIndex(...) method. There are also related changes in llvm-clients: klee and clang. llvm-svn: 152298
-
Daniel Dunbar authored
llvm-svn: 152289
-
Richard Smith authored
starting with an underscore is ill-formed. Since this rule rejects programs that were using <inttypes.h>'s macros, recover from this error by treating the ud-suffix as a separate preprocessing-token, with a DefaultError ExtWarn. The approach of treating such cases as two tokens is under discussion for standardization, but is in any case a conforming extension and allows existing codebases to keep building while the committee makes up its mind. Reword the warning on the definition of literal operators not starting with underscores (which are, strangely, legal) to more explicitly state that such operators can't be called by literals. Remove the special-case diagnostic for hexfloats, since it was both triggering in the wrong cases and incorrect. llvm-svn: 152287
-
Douglas Gregor authored
"false" for declarations that aren't members of classes. Fixes PR12106. llvm-svn: 152284
-
Daniel Dunbar authored
llvm-svn: 152281
-
Daniel Dunbar authored
builds. Sheesh. llvm-svn: 152279
-
Richard Smith authored
llvm-svn: 152277
-
Richard Trieu authored
to its own member function. llvm-svn: 152276
-
Argyrios Kyrtzidis authored
an #include entry that did not resolve to header file. Part of rdar://11007039 llvm-svn: 152275
-
Douglas Gregor authored
paren/brace/bracket tracking (the Consume* functions already did it), removing the use of ConsumeAnyToken(), and moving the hot paths inline with the error paths out-of-line. llvm-svn: 152274
-
Fariborz Jahanian authored
block variable. // rdar://10817031 llvm-svn: 152273
-
Anna Zaks authored
The final graph contains a single root node, which is a parent of all externally available functions(and 'main'). As well as a list of Parentless/Unreachable functions, which are either truly unreachable or are unreachable due to our analyses imprecision. The analyzer checkers debug.DumpCallGraph or debug.ViewGraph can be used to look at the produced graph. Currently, the graph is not very precise, for example, it entirely skips edges resulted from ObjC method calls. llvm-svn: 152272
-
Fariborz Jahanian authored
an uninitialized block variable is being called inside the block literal. // rdar://10817031 llvm-svn: 152271
-
Argyrios Kyrtzidis authored
Basically the current design is: -for an implementation method, show as overridden the interface method. This is not useful, and is inconsistent with the C++ side -for an interface method, show as overridden the protocols methods (this is desirable) and the methods from the categories; methods from categories are not useful since they are considered the same method (same USR). -If there is a protocol method or category method reported, it does not check the super class for overridden methods. This is really problematic since overridden methods from super class is what we want to give back. Change clang_getOverriddenCursors to show as overridden any method in the class's base class, its protocols, or its categories' protocols, that has the same selector and is of the same kind (class or instance). If no such method exists, the search continues to the class's superclass, its protocols, and its categories, and so on. A method from an Objective-C implementation is considered to override the same methods as its corresponding method in the interface. rdar://10967206 llvm-svn: 152270
-
Bob Wilson authored
PR12196: The module hash strings are not actually hashing the compiler version string; the entire version string is being included in the hash. Depending on the module cache directory name, that can lead to failures where the path names become too long. As a temporary workaround, just remove the version string from the hash. llvm-svn: 152266
-
- Mar 07, 2012
-
-
Richard Trieu authored
llvm-svn: 152239
-
Sebastian Redl authored
llvm-svn: 152231
-
Richard Smith authored
llvm-svn: 152216
-
Richard Smith authored
analysis to make the AST representation testable. They are represented by a new UserDefinedLiteral AST node, which is a sugared CallExpr. All semantic properties, including full CodeGen support, are achieved for free by this representation. UserDefinedLiterals can never be dependent, so no custom instantiation behavior is required. They are mangled as if they were direct calls to the underlying literal operator. This matches g++'s apparent behavior (but not its actual mangling, which is broken for literal-operator-ids). User-defined *string* literals are now fully-operational, but the semantic analysis is quite hacky and needs more work. No other forms of user-defined literal are created yet, but the AST support for them is present. This patch committed after midnight because we had already hit the quota for new kinds of literal yesterday. llvm-svn: 152211
-
Richard Smith authored
llvm-svn: 152199
-
Richard Smith authored
identifiers, in cases where those identifiers would be treated as user-defined literal suffixes in C++11. llvm-svn: 152198
-
Richard Smith authored
is not usable in a constant expression. ~2.5% speedup on 403.gcc / combine.c. llvm-svn: 152193
-
Argyrios Kyrtzidis authored
compiler errors or not. -Control whether ASTReader should reject such a PCH by a boolean flag at ASTReader's creation time. By default, such a PCH file will be rejected with an error when trying to load it. [libclang] Allow clang_saveTranslationUnit to create a PCH file even if compiler errors occurred. -Have libclang API calls accept a PCH that had compiler errors. The general idea is that we want libclang to stay functional even if a PCH had a compiler error. rdar://10976363. llvm-svn: 152192
-
Eli Friedman authored
llvm-svn: 152191
-
Eli Friedman authored
Make sure we consistently canonicalize types when canonicalizing TemplateTemplateParmDecls. PR12179. llvm-svn: 152189
-
Fariborz Jahanian authored
when debugging. // rdar://10997647 llvm-svn: 152187
-
Andrew Trick authored
If you're using git-svn, the clang and llvm repository will typically map to a different revision. Before we had: clang version 3.1 (trunk 152167 trunk 152162) After this change: clang version 3.1 (trunk 152167) (llvm/trunk 152162) So it's self-descriptive with an extra parens group. Which is more compatible with version string parsers is probably debatable, but this style was requested. llvm-svn: 152183
-
Richard Smith authored
producing a C-only diagnostic. llvm-svn: 152181
-
Chad Rosier authored
rdar://10993648 llvm-svn: 152180
-
Benjamin Kramer authored
llvm-svn: 152170
-
Michael Han authored
This submission improves Clang sema handling by using Clang tablegen to generate common boilerplate code. As a start, it implements AttributeList enumerator generation and case statements for AttributeList::getKind. A new field "SemaHandler" is introduced in Attr.td and by default set to 1 as most of attributes in Attr.td have semantic checking in Sema. For a small number of attributes that don't appear in Sema, the value is set to 0. Also there are a small number of attributes that only appear in Sema but not in Attr.td. Currently these attributes are still hardcoded in Sema AttributeList. Reviewed by Delesley Hutchins. llvm-svn: 152169
-
Dylan Noblesmith authored
The declarations of the operators no longer matched. The definitions in ASTContext.h had 'throw()' removed, but it was still present in Attr.h. Somehow the buildbots missed this. clang merely warns about a missing 'throw()' specification and suggested a Fix-It adding it back, but gcc 4.5 is not so forgiving and gives an error. llvm-svn: 152167
-
Daniel Dunbar authored
llvm-svn: 152166
-
Daniel Dunbar authored
-- which is very much not free -- in the common case. llvm-svn: 152165
-
Ted Kremenek authored
llvm-svn: 152163
-
Chad Rosier authored
llvm-svn: 152160
-