Commit Graph

27 Commits

Author SHA1 Message Date
Jordan Rose bea522ff43 ArrayRef-ize ASTContext::getFunctionType and Sema::BuildFunctionType.
No (intended) functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@176726 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-08 21:51:21 +00:00
Fariborz Jahanian a09cd8103a objective-C modern translator: Fixes a mistranslation
of @throw statement by finding location of the ';'
correctly. // rdar://13186010


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174898 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-11 19:30:33 +00:00
Jordan Rose 3f6f51e282 Excise <cctype> from Clang (except clang-tblgen) in favor of CharInfo.h.
Nearly all of these changes are one-to-one replacements; the few that
aren't have to do with custom identifier validation.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174768 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-08 22:30:41 +00:00
Fariborz Jahanian 9ffd1aea98 objective-C modern translation: Fix another random translation bug
involving property getter expressions on rhs of property setter.
// rdar://13138459


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174729 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-08 18:57:50 +00:00
Fariborz Jahanian bfaa111e71 objective-C modern translator. Fixes a trivial
rewriting bug where #ifdef ended up on the same
line as the attribute declaration.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174719 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-08 17:15:07 +00:00
Fariborz Jahanian ada7191795 objective-C modern translator. Generate #line
info in the translated code under -g only.
// rdar://13138170


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174684 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-08 00:27:34 +00:00
Fariborz Jahanian 31c4a4b017 objective-C modern translator. More fixups for
modern meta-data abi translation. Still wip.
// rdar://13138459


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174672 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-07 22:50:40 +00:00
Fariborz Jahanian cd3b036dbd objective-C modern translator. Fix up the translated
metadata to handle ivar bitfields. This is wip.
// rdar://13138459


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174573 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-07 01:53:15 +00:00
Douglas Gregor d329724745 Rework the traversal of Objective-C categories and extensions to
consider (sub)module visibility.

The bulk of this change replaces myriad hand-rolled loops over the
linked list of Objective-C categories/extensions attached to an
interface declaration with loops using one of the four new category
iterator kinds:

  visible_categories_iterator: Iterates over all visible categories
  and extensions, hiding any that have their "hidden" bit set. This is
  by far the most commonly used iterator.

  known_categories_iterator: Iterates over all categories and
  extensions, ignoring the "hidden" bit. This tends to be used for
  redeclaration-like traversals.

  visible_extensions_iterator: Iterates over all visible extensions,
  hiding any that have their "hidden" bit set.

  known_extensions_iterator: Iterates over all extensions, whether
  they are visible to normal name lookup or not.

The effect of this change is that any uses of the visible_ iterators
will respect module-import visibility. See the new tests for examples.

Note that the old accessors for categories and extensions are gone;
there are *Raw() forms for some of them, for those (few) areas of the
compiler that have to manipulate the linked list of categories
directly. This is generally discouraged.

Part two of <rdar://problem/10634711>.
 



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172665 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-16 23:00:23 +00:00
Dmitri Gribenko cfa88f8939 Remove useless 'llvm::' qualifier from names like StringRef and others that are
brought into 'clang' namespace by clang/Basic/LLVM.h


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172323 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-12 19:30:44 +00:00
Chad Rosier e3b29886ab Fix indent and remove parameter with a matching default value.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171545 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-04 22:40:33 +00:00
Bill Wendling ad017fa7a4 Revert r170500. It over-zealously converted *ALL* things named Attributes, which is wrong here.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170721 91177308-0d34-0410-b5e6-96231b3b80d8
2012-12-20 19:22:21 +00:00
Bill Wendling 094dbf9171 Rename the 'Attributes' class to 'Attribute'. It's going to represent a single attribute in the future.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170500 91177308-0d34-0410-b5e6-96231b3b80d8
2012-12-19 07:18:12 +00:00
Eli Friedman 6febf1265b Using CanQualType::getAs<ArrayType> is unsafe; fix the code currently using it,
and make sure additional uses don't get introduced.  <rdar://problem/12858424>.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170081 91177308-0d34-0410-b5e6-96231b3b80d8
2012-12-13 01:43:21 +00:00
Chandler Carruth 55fc873017 Sort all of Clang's files under 'lib', and fix up the broken headers
uncovered.

This required manually correcting all of the incorrect main-module
headers I could find, and running the new llvm/utils/sort_includes.py
script over the files.

I also manually added quite a few missing headers that were uncovered by
shuffling the order or moving headers up to be main-module-headers.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169237 91177308-0d34-0410-b5e6-96231b3b80d8
2012-12-04 09:13:33 +00:00
Benjamin Kramer 9852f58f50 Don't include Type.h in DeclarationName.h.
Recursively prune some includes.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169094 91177308-0d34-0410-b5e6-96231b3b80d8
2012-12-01 16:35:25 +00:00
Benjamin Kramer 2fa67efeaf Pull the Attr iteration parts out of Attr.h, so including DeclBase.h doesn't pull in all the generated Attr code.
Required to pull some functions out of line, but this shouldn't have a perf impact.
No functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169092 91177308-0d34-0410-b5e6-96231b3b80d8
2012-12-01 15:09:41 +00:00
Fariborz Jahanian b15c8984ea objective-C blocks: Make sure that identical logic is used
in deciding a copy/dispose field is needed in a byref structure
and when generating the copy/dispose helpers. In certain
cases, these fields were being added but no copy/dispose was
being generated. This was uncovered in ARC, but not in MRR.
// rdar://12759433


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168825 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-28 23:12:17 +00:00
Fariborz Jahanian 3b45ca9e62 objective-C modern translator. Start the line
directive on a new line.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167542 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-07 18:15:53 +00:00
Fariborz Jahanian 43f4f1e92b modern ObjC translator. Insert line number for @synchronized statements.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167511 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-07 00:43:05 +00:00
Fariborz Jahanian f616ae2d13 objective-C modern rewriter. Insert line numbers in
translated code where new code makes the lines be off.
This is wip.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167500 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-06 23:25:49 +00:00
NAKAMURA Takumi ba529a9bf9 RewriteModernObjC.cpp: Use Lexer::Stringify() on the file name of #line directive to escape Win32 path separator '\\'.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167497 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-06 22:45:31 +00:00
Fariborz Jahanian 9620596ca2 Modern objective-C translator: Start adding line info to the
translated source where it is needed. wip.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167469 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-06 17:30:23 +00:00
Lang Hames be9af12888 Add FP_CONTRACT support for clang.
Clang will now honor the FP_CONTRACT pragma and emit LLVM
fmuladd intrinsics for expressions of the form A * B + C (when they occur in a
single statement).



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164989 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-02 04:45:10 +00:00
Dmitri Gribenko 1ad23d6200 Remove redundant semicolons which are null statements.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163546 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-10 21:20:09 +00:00
Aaron Ballman 2d234d73f6 Fixing the return type information for objc_sync_enter and objc_sync_exit. Patch thanks to Joe Ranieri!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163330 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-06 16:44:16 +00:00
Ted Kremenek 305c613af6 Split library clangRewrite into clangRewriteCore and clangRewriteFrontend.
This is similar to how we divide up the StaticAnalyzer libraries to separate
core functionality to what is clearly associated with Frontend actions.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163050 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-01 05:09:24 +00:00