diff options
author | Douglas Gregor <dgregor@apple.com> | 2011-11-08 19:45:38 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2011-11-08 19:45:38 +0000 |
commit | 5b0c5199a7037d0435d75f37e3ba69a24f757931 (patch) | |
tree | a7e8b9cac1f2c2120443ab7621d57cf20085f11d /lib/Sema/SemaChecking.cpp | |
parent | 5bea4f6860543017be326e3fbe702edb2678d898 (diff) |
Mark the overloaded atomic builtins as having custom type checking,
which they do. This avoids all of the default argument promotions that
we (1) don't want, and (2) undo during that custom type checking, and
makes sure that we don't run into trouble during template
instantiation. Fixes PR11320.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144110 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Sema/SemaChecking.cpp')
-rw-r--r-- | lib/Sema/SemaChecking.cpp | 8 |
1 files changed, 0 insertions, 8 deletions
diff --git a/lib/Sema/SemaChecking.cpp b/lib/Sema/SemaChecking.cpp index cd07358b15..6fbdb5163c 100644 --- a/lib/Sema/SemaChecking.cpp +++ b/lib/Sema/SemaChecking.cpp @@ -852,14 +852,6 @@ Sema::SemaBuiltinAtomicOverloaded(ExprResult TheCallResult) { for (unsigned i = 0; i != NumFixed; ++i) { ExprResult Arg = TheCall->getArg(i+1); - // If the argument is an implicit cast, then there was a promotion due to - // "...", just remove it now. - if (ImplicitCastExpr *ICE = dyn_cast<ImplicitCastExpr>(Arg.get())) { - Arg = ICE->getSubExpr(); - ICE->setSubExpr(0); - TheCall->setArg(i+1, Arg.get()); - } - // GCC does an implicit conversion to the pointer or integer ValType. This // can fail in some cases (1i -> int**), check for this error case now. // Initialize the argument. |