[clang] [clang][Sema] Don't emit 'declared here' note for builtin functions with no decl in source (PR #93394)

2024-05-26 Thread Timm Baeder via cfe-commits
@@ -5,7 +5,7 @@ void similar() { // expected-note {{'similar' declared here}} if constexpr (similer<>) {} // expected-error {{use of undeclared identifier 'similer'; did you mean 'similar'?}} } void a() { if constexpr (__adl_swap<>) {}} // expected-error{{use of undeclared

[clang] [clang][Sema] Don't emit 'declared here' note for builtin functions with no decl in source (PR #93394)

2024-05-26 Thread Timm Baeder via cfe-commits
tbaederr wrote: Would be nice if you could add new explicit tests for this. https://github.com/llvm/llvm-project/pull/93394 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][Interp] Member Pointers (PR #91303)

2024-05-26 Thread Timm Baeder via cfe-commits
Timm =?utf-8?q?Bäder?= , Timm =?utf-8?q?Bäder?= , Timm =?utf-8?q?Bäder?= Message-ID: In-Reply-To: https://github.com/tbaederr updated https://github.com/llvm/llvm-project/pull/91303 >From 30d86295dda9b7aaa06c23b67c54806475266e5d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3=A4der?=

[clang] [Clang] Rewrite SourceLocExpr in default args (PR #93383)

2024-05-26 Thread Timm Baeder via cfe-commits
@@ -5506,6 +5506,15 @@ struct EnsureImmediateInvocationInDefaultArgs // cause it to incorrectly point it to the outermost class // in the case of nested struct initialization. ExprResult TransformCXXThisExpr(CXXThisExpr *E) { return E; } + + // Rewrite to source

[clang] [clang][Interp] Member Pointers (PR #91303)

2024-05-26 Thread Timm Baeder via cfe-commits
Timm =?utf-8?q?Bäder?= , Timm =?utf-8?q?Bäder?= , Timm =?utf-8?q?Bäder?= Message-ID: In-Reply-To: https://github.com/tbaederr updated https://github.com/llvm/llvm-project/pull/91303 >From 30d86295dda9b7aaa06c23b67c54806475266e5d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3=A4der?=

[clang] [clang][Sema] Don't emit 'declared here' note for builtin functions with no decl in source (PR #93394)

2024-05-26 Thread Timm Baeder via cfe-commits
@@ -5897,6 +5897,16 @@ void Sema::diagnoseTypo(const TypoCorrection , NamedDecl *ChosenDecl = Correction.isKeyword() ? nullptr : Correction.getFoundDecl(); + + // For builtin functions which aren't declared anywhere in source, + // don't emit the "declared here"

[clang] [clang][Interp] Member Pointers (PR #91303)

2024-05-25 Thread Timm Baeder via cfe-commits
Timm =?utf-8?q?Bäder?= , Timm =?utf-8?q?Bäder?= Message-ID: In-Reply-To: https://github.com/tbaederr updated https://github.com/llvm/llvm-project/pull/91303 >From 30d86295dda9b7aaa06c23b67c54806475266e5d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3=A4der?= Date: Wed, 10 Apr 2024

[clang] [clang] Report erroneous floating point results in _Complex math (PR #90588)

2024-05-24 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr updated https://github.com/llvm/llvm-project/pull/90588 >From 4bcba4c08be471e8cf6fb52842f9a73e3c45639d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3=A4der?= Date: Tue, 30 Apr 2024 12:25:20 +0200 Subject: [PATCH] [clang] Report erroneous floating point results

[clang] [clang] Report erroneous floating point results in _Complex math (PR #90588)

2024-05-24 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr updated https://github.com/llvm/llvm-project/pull/90588 >From 4d121c1cdca78378a3200353071c9ff460e0fcbc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3=A4der?= Date: Tue, 30 Apr 2024 12:25:20 +0200 Subject: [PATCH] [clang][Interp] Report erroneous floating point

[clang] [clang][Interp] Member Pointers (PR #91303)

2024-05-24 Thread Timm Baeder via cfe-commits
Timm =?utf-8?q?Bäder?= Message-ID: In-Reply-To: https://github.com/tbaederr updated https://github.com/llvm/llvm-project/pull/91303 >From df90df17e949e264f0b0f6816cd6bd138e159271 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3=A4der?= Date: Wed, 10 Apr 2024 16:42:36 +0200 Subject:

[clang] [clang][Interp] Member Pointers (PR #91303)

2024-05-24 Thread Timm Baeder via cfe-commits
@@ -3123,10 +3172,28 @@ bool ByteCodeExprGen::VisitCallExpr(const CallExpr *E) { } } + std::optional CalleeOffset; // Add the (optional, implicit) This pointer. if (const auto *MC = dyn_cast(E)) { -if (!this->visit(MC->getImplicitObjectArgument())) -

[clang] [clang][Interp] Member Pointers (PR #91303)

2024-05-24 Thread Timm Baeder via cfe-commits
@@ -0,0 +1,112 @@ +//===- MemberPointer.h --*- C++ -*-===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier:

[clang] [clang][Interp] Member Pointers (PR #91303)

2024-05-22 Thread Timm Baeder via cfe-commits
tbaederr wrote: Ping https://github.com/llvm/llvm-project/pull/91303 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang] Report erroneous floating point results in _Complex math (PR #90588)

2024-05-21 Thread Timm Baeder via cfe-commits
tbaederr wrote: Ping @jcranmer-intel, @hubert-reinterpretcast https://github.com/llvm/llvm-project/pull/90588 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang] Report erroneous floating point results in _Complex math (PR #90588)

2024-05-13 Thread Timm Baeder via cfe-commits
tbaederr wrote: Ping https://github.com/llvm/llvm-project/pull/90588 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][Interp] Member Pointers (PR #91303)

2024-05-12 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr updated https://github.com/llvm/llvm-project/pull/91303 >From a1cefd4b17bb540568472e753b7d4684a99bdda9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3=A4der?= Date: Wed, 10 Apr 2024 16:42:36 +0200 Subject: [PATCH] Memberpointers ---

[clang] [clang][Interp] Member Pointers (PR #91303)

2024-05-12 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr updated https://github.com/llvm/llvm-project/pull/91303 >From c8bddc0573c62f288314b4407ba500dcc9b84425 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3=A4der?= Date: Wed, 10 Apr 2024 16:42:36 +0200 Subject: [PATCH] Memberpointers ---

[clang] [clang][Interp] Member Pointers (PR #91303)

2024-05-07 Thread Timm Baeder via cfe-commits
@@ -0,0 +1,80 @@ + + +#include "MemberPointer.h" +#include "Context.h" +#include "FunctionPointer.h" +#include "Program.h" +#include "Record.h" + +namespace clang { +namespace interp { + +std::optional MemberPointer::toPointer(const Context ) const { + if (!Dcl || isa(Dcl)) +

[clang] [clang][Interp] Member Pointers (PR #91303)

2024-05-07 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr created https://github.com/llvm/llvm-project/pull/91303 This adds a `MemberPointer` class along with a `PT_MemberPtr` primitive type. A `MemberPointer` has a `Pointer` Base as well as a `Decl*` (could be `ValueDecl*`?) decl it points to. For the actual logic, this

[clang] [clang] Report erroneous floating point results in _Complex math (PR #90588)

2024-05-07 Thread Timm Baeder via cfe-commits
tbaederr wrote: Ping https://github.com/llvm/llvm-project/pull/90588 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang] Report erroneous floating point results in _Complex math (PR #90588)

2024-05-02 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr edited https://github.com/llvm/llvm-project/pull/90588 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang]Report erroneous floating point results in _Complex math (PR #90588)

2024-04-30 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr edited https://github.com/llvm/llvm-project/pull/90588 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][Interp] Report erroneous floating point results in _Complex math (PR #90588)

2024-04-30 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr created https://github.com/llvm/llvm-project/pull/90588 Use handleFloatFloatBinOp to properly diagnose NaN results and divisions by zero. Fixes #84871 >From edb5cd5c610f112bca4c9d027a017e9e6dc9bf10 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3=A4der?=

[clang] [clang][CodeGen][NFC] Make ConstExprEmitter a ConstStmtVisitor (PR #89041)

2024-04-22 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr closed https://github.com/llvm/llvm-project/pull/89041 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [C23] Select the correct promoted type for a bit-field (PR #89254)

2024-04-18 Thread Timm Baeder via cfe-commits
tbaederr wrote: > @tbaederr -- this triggers an assertion with the new constexpr interpreter in > `clang/test/AST/Interp/intap.cpp` but I'm not certain I understand why. Can > you help me figure out how to fix that? > >

[clang] [clang-tools-extra] [clang][NFC] Fix FieldDecl::isUnnamedBitfield() capitalization (PR #89048)

2024-04-17 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr closed https://github.com/llvm/llvm-project/pull/89048 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [C++23] [CLANG] Adding C++23 constexpr math functions: fmin and frexp. (PR #88978)

2024-04-17 Thread Timm Baeder via cfe-commits
@@ -2922,7 +2922,7 @@ static bool handleFloatFloatBinOp(EvalInfo , const BinaryOperator *E, // If during the evaluation of an expression, the result is not // mathematically defined [...], the behavior is undefined. // FIXME: C++ rules require us to not conform to

[clang] [C++23] [CLANG] Adding C++23 constexpr math functions: fmin and frexp. (PR #88978)

2024-04-17 Thread Timm Baeder via cfe-commits
@@ -14547,6 +14547,18 @@ bool FloatExprEvaluator::VisitCallExpr(const CallExpr *E) { default: return false; + case Builtin::BI__builtin_frexpf: + case Builtin::BI__builtin_frexp: { +LValue Pointer; +if (!EvaluateFloat(E->getArg(0), Result, Info) || +

[clang] [C++23] [CLANG] Adding C++23 constexpr math functions: fmin and frexp. (PR #88978)

2024-04-17 Thread Timm Baeder via cfe-commits
@@ -0,0 +1,51 @@ +// RUN: %clang_cc1 -x c++ -triple x86_64-unknown-unknown -std=c++23 \ +// RUN: -emit-llvm -o - %s | FileCheck %s + +// RUN %clang_cc1 -x c++ -triple x86_64-linux-gnu -emit-llvm -o - %s \ +// RUN -std=c++23 + +#define INFINITY ((float)(1e+300 * 1e+300)) +#define

[clang] [C++23] [CLANG] Adding C++23 constexpr math functions: fmin and frexp. (PR #88978)

2024-04-17 Thread Timm Baeder via cfe-commits
@@ -14547,6 +14547,18 @@ bool FloatExprEvaluator::VisitCallExpr(const CallExpr *E) { default: return false; + case Builtin::BI__builtin_frexpf: tbaederr wrote: Not doing that is fine for now. https://github.com/llvm/llvm-project/pull/88978

[clang] [clang-tools-extra] [clang][NFC] Fix FieldDecl::isUnnamedBitfield() capitalization (PR #89048)

2024-04-17 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr updated https://github.com/llvm/llvm-project/pull/89048 >From 5e4b24933180f012573785fa5747bf37efd26fad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3=A4der?= Date: Wed, 17 Apr 2024 12:53:49 +0200 Subject: [PATCH] [clang][NFC] Fix FieldDecl::isUnnamedBitfield()

[clang] [clang][NFC] Fix FieldDecl::isUnnamedBitfield() capitalization (PR #89048)

2024-04-17 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr created https://github.com/llvm/llvm-project/pull/89048 We always capitalize bitfield as "BitField". >From 071305b588337841fbd2dbb929487c105a289d4b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3=A4der?= Date: Wed, 17 Apr 2024 12:53:49 +0200 Subject: [PATCH]

[clang] [clang][CodeGen][NFC] Make ConstExprEmitter a ConstStmtVisitor (PR #89041)

2024-04-17 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr created https://github.com/llvm/llvm-project/pull/89041 No reason for this to not be one. This gets rid of a few const_casts. >From 2edf794268aa825391a37053bb5908e362ad62a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3=A4der?= Date: Wed, 17 Apr 2024 11:02:20

[clang] [Clang] Diagnose apply AST consume actions on LLVM IR (PR #88602)

2024-04-16 Thread Timm Baeder via cfe-commits
@@ -370,4 +370,7 @@ def warn_missing_symbol_graph_dir : Warning< "Missing symbol graph output directory, defaulting to working directory">, InGroup; +def err_ast_action_on_unparsable_source : Error< + "can not apply ast actions to LLVM IR file '%0'">,

[clang] [Clang] Allow the value of unroll count to be zero in `#pragma GCC unroll` and `#pragma unroll` (PR #88666)

2024-04-15 Thread Timm Baeder via cfe-commits
@@ -423,6 +423,10 @@ Bug Fixes in This Version - Fixed a regression in CTAD that a friend declaration that befriends itself may cause incorrect constraint substitution. (#GH86769). +- Clang now allowed the value of unroll count to be zero in ``#pragma GCC unroll`` and

[clang] [clang][Interp] Integral pointers (PR #84159)

2024-04-11 Thread Timm Baeder via cfe-commits
@@ -22,7 +22,11 @@ class FunctionPointer final { const Function *Func; public: - FunctionPointer() : Func(nullptr) {} + // FIXME: We might want to track the fact that the Function pointer + // has been created from an integer and is most likely garbage anyway. +

[clang] [clang][Interp] Integral pointers (PR #84159)

2024-04-11 Thread Timm Baeder via cfe-commits
@@ -22,7 +22,11 @@ class FunctionPointer final { const Function *Func; public: - FunctionPointer() : Func(nullptr) {} + // FIXME: We might want to track the fact that the Function pointer + // has been created from an integer and is most likely garbage anyway. +

[clang] [clang][Interp] Integral pointers (PR #84159)

2024-04-10 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr closed https://github.com/llvm/llvm-project/pull/84159 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][Interp] Integral pointers (PR #84159)

2024-04-09 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr updated https://github.com/llvm/llvm-project/pull/84159 >From 3d6a09d1324dbd354668b0341644fb70fe09a47c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3=A4der?= Date: Wed, 6 Mar 2024 08:36:52 +0100 Subject: [PATCH] [clang][Interp] Integral pointers ---

[clang] [clang][Interp] Integral pointers (PR #84159)

2024-04-09 Thread Timm Baeder via cfe-commits
Timm =?utf-8?q?B=C3=A4der?= , Timm =?utf-8?q?B=C3=A4der?= , Timm =?utf-8?q?B=C3=A4der?= , Timm =?utf-8?q?B=C3=A4der?= , Timm =?utf-8?q?B=C3=A4der?= Message-ID: In-Reply-To: @@ -1912,6 +1929,10 @@ inline bool NoRet(InterpState , CodePtr OpPC) { inline bool

[clang] [NFC][Clang] Fix static analyzer concern (PR #88179)

2024-04-09 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr approved this pull request. https://github.com/llvm/llvm-project/pull/88179 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang] Improve source location in binary type traits diagnostics (PR #88097)

2024-04-09 Thread Timm Baeder via cfe-commits
tbaederr wrote: Do we now have enough information to pass a source range as well? https://github.com/llvm/llvm-project/pull/88097 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang] Emit bad shift warnings (PR #70307)

2024-04-09 Thread Timm Baeder via cfe-commits
@@ -11444,9 +11444,12 @@ static void DiagnoseBadShiftValues(Sema& S, ExprResult , ExprResult , llvm::APSInt Right = RHSResult.Val.getInt(); if (Right.isNegative()) { -S.DiagRuntimeBehavior(Loc, RHS.get(), - S.PDiag(diag::warn_shift_negative)

[clang] Fix/interp init list unnamed bitfields (PR #87799)

2024-04-08 Thread Timm Baeder via cfe-commits
@@ -0,0 +1,114 @@ +// UNSUPPORTED: asserts +// REQUIRES: asserts +// ^ this attempts to say "don't actually run this test", because it's broken +// +// The point of this test is to demonstrate something that ExprConstant accepts, +// but Interp rejects. I had hoped to express

[clang] Fix/interp init list unnamed bitfields (PR #87799)

2024-04-08 Thread Timm Baeder via cfe-commits
@@ -0,0 +1,114 @@ +// UNSUPPORTED: asserts +// REQUIRES: asserts +// ^ this attempts to say "don't actually run this test", because it's broken tbaederr wrote: In this case, I would fix the other bug first. https://github.com/llvm/llvm-project/pull/87799

[clang] Fix/interp init list unnamed bitfields (PR #87799)

2024-04-05 Thread Timm Baeder via cfe-commits
@@ -884,8 +884,36 @@ bool ByteCodeExprGen::visitInitList(ArrayRef Inits, if (!this->emitDupPtr(E)) return false; +// guard relatively expensive base check behind an almost-always-false tbaederr wrote: The comment sounds like this is just a

[clang] Fix/interp init list unnamed bitfields (PR #87799)

2024-04-05 Thread Timm Baeder via cfe-commits
@@ -0,0 +1,114 @@ +// UNSUPPORTED: asserts +// REQUIRES: asserts +// ^ this attempts to say "don't actually run this test", because it's broken +// +// The point of this test is to demonstrate something that ExprConstant accepts, +// but Interp rejects. I had hoped to express

[clang] Fix/interp init list unnamed bitfields (PR #87799)

2024-04-05 Thread Timm Baeder via cfe-commits
@@ -0,0 +1,114 @@ +// UNSUPPORTED: asserts +// REQUIRES: asserts +// ^ this attempts to say "don't actually run this test", because it's broken tbaederr wrote: It's broken even with the changes in this PR? https://github.com/llvm/llvm-project/pull/87799

[clang] Add missing declarations of explicit template instantiations. (PR #86964)

2024-03-29 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr closed https://github.com/llvm/llvm-project/pull/86964 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang] Fix assertion failure when printing atomic apvalues (PR #85259)

2024-03-26 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr closed https://github.com/llvm/llvm-project/pull/85259 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang] Fix assertion failure when printing atomic apvalues (PR #85259)

2024-03-26 Thread Timm Baeder via cfe-commits
tbaederr wrote: Right, I was just hoping for an existing unittest for `APValue`. https://github.com/llvm/llvm-project/pull/85259 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][Interp] Integral pointers (PR #84159)

2024-03-25 Thread Timm Baeder via cfe-commits
Timm =?utf-8?q?B=C3=A4der?= , Timm =?utf-8?q?B=C3=A4der?= , Timm =?utf-8?q?B=C3=A4der?= , Timm =?utf-8?q?B=C3=A4der?= , Timm =?utf-8?q?B=C3=A4der?= Message-ID: In-Reply-To: tbaederr wrote: Ping https://github.com/llvm/llvm-project/pull/84159 ___

[clang] [clang][Interp] Merge ByteCodeExprGen and ByteCodeStmtGen (PR #83683)

2024-03-25 Thread Timm Baeder via cfe-commits
Timm =?utf-8?q?B=C3=A4der?= , Timm =?utf-8?q?B=C3=A4der?= , Timm =?utf-8?q?B=C3=A4der?= Message-ID: In-Reply-To: tbaederr wrote: Ping https://github.com/llvm/llvm-project/pull/83683 ___ cfe-commits mailing list cfe-commits@lists.llvm.org

[clang] [clang] Fix assertion failure when printing atomic apvalues (PR #85259)

2024-03-25 Thread Timm Baeder via cfe-commits
tbaederr wrote: Ping https://github.com/llvm/llvm-project/pull/85259 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][NFC] Add documentation for `CastExpr::path()`. (PR #85623)

2024-03-19 Thread Timm Baeder via cfe-commits
tbaederr wrote: > I've moved the documentation down, right above the declaration of `path()`. > WDYT? I think that should work. https://github.com/llvm/llvm-project/pull/85623 ___ cfe-commits mailing list cfe-commits@lists.llvm.org

[clang] [clang][Sema] Refine unused-member-function diagnostic message for constructors (PR #84515)

2024-03-19 Thread Timm Baeder via cfe-commits
@@ -76,10 +76,33 @@ struct S { struct SVS : public VS { void vm() { } }; + + struct CS { +CS() {} +CS(bool a) {} +CS(int b) {} // expected-warning{{unused constructor 'CS'}} +CS(float c); + }; + + struct DCS : public CS { +DCS() = default; //

[clang] [clang][NFC] Add documentation for `CastExpr::path()`. (PR #85623)

2024-03-19 Thread Timm Baeder via cfe-commits
tbaederr wrote: Does this actually show up at the right place? Or is it now the documentation for `path_empty()`? Or even `path_iterator`? https://github.com/llvm/llvm-project/pull/85623 ___ cfe-commits mailing list cfe-commits@lists.llvm.org

[clang] [NFC] Refactor ConstantArrayType size storage (PR #85716)

2024-03-18 Thread Timm Baeder via cfe-commits
@@ -3182,34 +3182,98 @@ class ArrayType : public Type, public llvm::FoldingSetNode { /// For example, the canonical type for 'int A[4 + 4*100]' is a /// ConstantArrayType where the element type is 'int' and the size is 404. class ConstantArrayType final -: public

[clang] [clang][ExprConst] Can't be past an invalid LValue designator (PR #84293)

2024-03-18 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr closed https://github.com/llvm/llvm-project/pull/84293 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][Interp] Integral pointers (PR #84159)

2024-03-18 Thread Timm Baeder via cfe-commits
Timm =?utf-8?q?Bäder?= , Timm =?utf-8?q?Bäder?= , Timm =?utf-8?q?Bäder?= , Timm =?utf-8?q?Bäder?= , Timm =?utf-8?q?Bäder?= Message-ID: In-Reply-To: https://github.com/tbaederr updated https://github.com/llvm/llvm-project/pull/84159 >From 1c06781e92b8fec78ae82b0d6a85965524d223d6 Mon Sep 17

[clang] [clang][Interp] Integral pointers (PR #84159)

2024-03-18 Thread Timm Baeder via cfe-commits
Timm =?utf-8?q?Bäder?= , Timm =?utf-8?q?Bäder?= , Timm =?utf-8?q?Bäder?= , Timm =?utf-8?q?Bäder?= Message-ID: In-Reply-To: https://github.com/tbaederr updated https://github.com/llvm/llvm-project/pull/84159 >From 7d49f0f7310c86fae986f0b84bfbf2bb6e79a745 Mon Sep 17 00:00:00 2001 From:

[clang] [clang] Fix assertion failure when printing atomic apvalues (PR #85259)

2024-03-18 Thread Timm Baeder via cfe-commits
tbaederr wrote: Ping https://github.com/llvm/llvm-project/pull/85259 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] fix: constexpr bit_cast with empty base classes (PR #82383)

2024-03-17 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr closed https://github.com/llvm/llvm-project/pull/82383 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][Sema] Track trivial-relocatability as a type trait (PR #84621)

2024-03-17 Thread Timm Baeder via cfe-commits
@@ -2680,8 +2680,8 @@ bool QualType::isTriviallyRelocatableType(const ASTContext ) const { return false; } else if (!BaseElementType->isObjectType()) { return false; - } else if (const auto *RD = BaseElementType->getAsRecordDecl()) { -return

[clang] [Clang] Ignore assumptions with side effects at compile time (PR #85534)

2024-03-17 Thread Timm Baeder via cfe-commits
tbaederr wrote: Is it expected that a failed assumption with side effects does not result in an error? ```c++ constexpr bool f(int ) { a = 10; return false; } constexpr int c() { int a = 0; [[assume(f(a))]]; return a; } static_assert(c() == 0); ```

[clang] [clang][ExprConst] Can't be past an invalid LValue designator (PR #84293)

2024-03-17 Thread Timm Baeder via cfe-commits
tbaederr wrote: Ping https://github.com/llvm/llvm-project/pull/84293 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] fix: constexpr bit_cast with empty base classes (PR #82383)

2024-03-15 Thread Timm Baeder via cfe-commits
tbaederr wrote: There's still a merge conflict now. Do you not have the necessary permissions to merge it yourself? https://github.com/llvm/llvm-project/pull/82383 ___ cfe-commits mailing list cfe-commits@lists.llvm.org

[clang] [clang] Move CCC_OVERRIDE_OPTIONS implementation to Driver (PR #85425)

2024-03-15 Thread Timm Baeder via cfe-commits
@@ -6677,3 +6678,136 @@ llvm::Error driver::expandResponseFiles(SmallVectorImpl , return llvm::Error::success(); } + +namespace { + +const char *GetStableCStr(std::set , StringRef S) { + return SavedStrings.insert(std::string(S)).first->c_str(); +} + +///

[clang] [clang] Fix assertion failure when printing atomic apvalues (PR #85259)

2024-03-14 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr created https://github.com/llvm/llvm-project/pull/85259 When printing an `_Atomic(some struct type)`, we would later run into an assertion because we do a `Ty->castAs()`, which doesn't work with an `AtomicType`. Not sure how to best write a test for, this, but

[clang] [Clang][Sema] Fix issue on requires expression with templated base class member function (PR #85198)

2024-03-14 Thread Timm Baeder via cfe-commits
tbaederr wrote: Please add a more useful PR description, since that's useful for reviewers and ends up in the git log. https://github.com/llvm/llvm-project/pull/85198 ___ cfe-commits mailing list cfe-commits@lists.llvm.org

[clang] [clang][Interp] Merge ByteCodeExprGen and ByteCodeStmtGen (PR #83683)

2024-03-14 Thread Timm Baeder via cfe-commits
Timm =?utf-8?q?Bäder?= , Timm =?utf-8?q?Bäder?= Message-ID: In-Reply-To: tbaederr wrote: > Sorry, I thought you were still doing some investigation. Ah, sorry, I was just trying to say that this is how far I'm going to investigate at that point. :) > I can live with either approach; the

[clang] [clang][Interp] Integral pointers (PR #84159)

2024-03-14 Thread Timm Baeder via cfe-commits
Timm =?utf-8?q?Bäder?= , Timm =?utf-8?q?Bäder?= Message-ID: In-Reply-To: @@ -28,11 +28,26 @@ class Block; class DeadBlock; class Pointer; class Context; +template class Integral; enum PrimType : unsigned; class Pointer; inline llvm::raw_ostream <<(llvm::raw_ostream ,

[clang] [clang][Interp] Integral pointers (PR #84159)

2024-03-14 Thread Timm Baeder via cfe-commits
Timm =?utf-8?q?B=C3=A4der?= , Timm =?utf-8?q?B=C3=A4der?= Message-ID: In-Reply-To: @@ -53,6 +57,10 @@ class FunctionPointer final { return toAPValue().getAsString(Ctx, Func->getDecl()->getType()); } + uint32_t getIntegerRepresentation() const { +return

[clang] [clang] Emit bad shift warnings (PR #70307)

2024-03-12 Thread Timm Baeder via cfe-commits
tbaederr wrote: There are two questions above about removing a diagnostic that you haven't answered yet https://github.com/llvm/llvm-project/pull/70307 ___ cfe-commits mailing list cfe-commits@lists.llvm.org

[clang] [clang][Interp] Merge ByteCodeExprGen and ByteCodeStmtGen (PR #83683)

2024-03-12 Thread Timm Baeder via cfe-commits
Timm =?utf-8?q?B=C3=A4der?= , Timm =?utf-8?q?B=C3=A4der?= Message-ID: In-Reply-To: tbaederr wrote: Ping https://github.com/llvm/llvm-project/pull/83683 ___ cfe-commits mailing list cfe-commits@lists.llvm.org

[clang] [clang][Interp] Implement __builtin_popcountg (PR #84500)

2024-03-09 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr closed https://github.com/llvm/llvm-project/pull/84500 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][Interp] Implement __builtin_popcountg (PR #84500)

2024-03-09 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr approved this pull request. https://github.com/llvm/llvm-project/pull/84500 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][test] Fix constant __builtin_popcountg test requiring __int128 (PR #84412)

2024-03-08 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr closed https://github.com/llvm/llvm-project/pull/84412 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][Interp] Integral pointers (PR #84159)

2024-03-07 Thread Timm Baeder via cfe-commits
Timm =?utf-8?q?Bäder?= , Timm =?utf-8?q?Bäder?= Message-ID: In-Reply-To: https://github.com/tbaederr updated https://github.com/llvm/llvm-project/pull/84159 >From 5eacd7478d3db7472d5ab983468a441b1f61ad7a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3=A4der?= Date: Wed, 6 Mar 2024

[clang] [clang][Interp] Integral pointers (PR #84159)

2024-03-07 Thread Timm Baeder via cfe-commits
Timm =?utf-8?q?Bäder?= Message-ID: In-Reply-To: @@ -28,11 +28,26 @@ class Block; class DeadBlock; class Pointer; class Context; +template class Integral; enum PrimType : unsigned; class Pointer; inline llvm::raw_ostream <<(llvm::raw_ostream , const Pointer );

[clang] [clang][Interp] Integral pointers (PR #84159)

2024-03-07 Thread Timm Baeder via cfe-commits
Timm =?utf-8?q?B=C3=A4der?= Message-ID: In-Reply-To: @@ -123,8 +167,9 @@ APValue Pointer::toAPValue() const { Path.push_back(APValue::LValuePathEntry({BaseOrMember, IsVirtual})); Ptr = Ptr.getBase(); continue; + +llvm_unreachable("Invalid

[clang] [clang][ExprConst] Can't be past an invalid LValue designator (PR #84293)

2024-03-07 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr updated https://github.com/llvm/llvm-project/pull/84293 >From 8dda4c1d6186c8d0ecd6b233f1bd636133056f02 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3=A4der?= Date: Thu, 7 Mar 2024 10:14:03 +0100 Subject: [PATCH] [clang][ExprConst] Can't be past an invalid

[clang] [Clang][Sema] Print more static_assert exprs (PR #74852)

2024-03-07 Thread Timm Baeder via cfe-commits
tbaederr wrote: Ping @cor3ntin @cjdb https://github.com/llvm/llvm-project/pull/74852 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][ExprConst] Can't be past an invalid LValue designator (PR #84293)

2024-03-07 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr created https://github.com/llvm/llvm-project/pull/84293 For the test case in C, both `LV.getLValueOffset()` and `Ctx.getTypeSizeInChars(Ty)` are zero, so we return `true` from `isOnePastTheEndOfCompleteObject()` and ultimately diagnose this as being one past the

[clang] [clang][Sema] Warn on self move for inlined static cast (PR #76646)

2024-03-06 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr closed https://github.com/llvm/llvm-project/pull/76646 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][Interp] Integral pointers (PR #84159)

2024-03-06 Thread Timm Baeder via cfe-commits
Timm =?utf-8?q?Bäder?= Message-ID: In-Reply-To: https://github.com/tbaederr updated https://github.com/llvm/llvm-project/pull/84159 >From 5eacd7478d3db7472d5ab983468a441b1f61ad7a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3=A4der?= Date: Wed, 6 Mar 2024 08:36:52 +0100 Subject:

[clang] [clang][Interp] Integral pointers (PR #84159)

2024-03-06 Thread Timm Baeder via cfe-commits
tbaederr wrote: FWIW I've been tracking test failures by enabling the new interpreter by default and running `ninja check-clang-{ast,sema,semacxx,codegen}` at https://tbaederr.github.io/stats/. With this patch, we're down from 281 to 262 (with only one new failure, `Sema/callingconv-cast.c`).

[clang] [clang][Interp] Merge ByteCodeExprGen and ByteCodeStmtGen (PR #83683)

2024-03-06 Thread Timm Baeder via cfe-commits
Timm =?utf-8?q?Bäder?= , Timm =?utf-8?q?Bäder?= Message-ID: In-Reply-To: tbaederr wrote: > How ugly does CRTP get though? Looks like this: https://github.com/tbaederr/llvm-project/commit/ae37a17e30978cbe8e42799d26308b2e4e7b0115 Not really a big fan. But I'm now stuck with ``` mold:

[clang] [clang][Interp] Integral pointers (PR #84159)

2024-03-06 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr created https://github.com/llvm/llvm-project/pull/84159 This turns the current `Pointer` class into a discriminated union of `BlockPointer` and `IntPointer`. The former is what `Pointer` currently is while the latter is just an integer value and an optional

[clang] [clang][Sema] Warn on self move for inlined static cast (PR #76646)

2024-03-05 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr approved this pull request. Much better, thanks. https://github.com/llvm/llvm-project/pull/76646 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][Interp] Merge ByteCodeExprGen and ByteCodeStmtGen (PR #83683)

2024-03-04 Thread Timm Baeder via cfe-commits
Timm =?utf-8?q?Bäder?= , Timm =?utf-8?q?Bäder?= Message-ID: In-Reply-To: tbaederr wrote: > So ByteCodeExprGen can definitely visit statements and expressions. Well yes, the possibility is there, but it doesn't implement any of the functionality when visiting statements. :) > Can't

[clang] [clang] Bugfix for choosing the more specialized overload (PR #83279)

2024-03-01 Thread Timm Baeder via cfe-commits
Botond =?utf-8?q?István_Horváth?=,Botond Istvan Horvath ,Botond Istvan Horvath ,Botond Istvan Horvath ,Botond Istvan Horvath Message-ID: In-Reply-To: https://github.com/tbaederr updated https://github.com/llvm/llvm-project/pull/83279 >From 68200ecf3267d1b3940fa73c25c50ee706932a98 Mon Sep

[clang] Fix implementation of [temp.param]p14's first sentence. (PR #83487)

2024-03-01 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr updated https://github.com/llvm/llvm-project/pull/83487 >From 1c443bec9f11c14f8971d5dcb03d12e50c080afc Mon Sep 17 00:00:00 2001 From: erichkeane Date: Thu, 29 Feb 2024 13:29:02 -0800 Subject: [PATCH 1/3] Fix implementation of [temp.param]p14's first sentence. The

[clang] Fix implementation of [temp.param]p14's first sentence. (PR #83487)

2024-03-01 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr updated https://github.com/llvm/llvm-project/pull/83487 >From 1c443bec9f11c14f8971d5dcb03d12e50c080afc Mon Sep 17 00:00:00 2001 From: erichkeane Date: Thu, 29 Feb 2024 13:29:02 -0800 Subject: [PATCH 1/3] Fix implementation of [temp.param]p14's first sentence. The

[clang] [clang][Sema] Warn on self move for inlined static cast (PR #76646)

2024-02-29 Thread Timm Baeder via cfe-commits
@@ -18843,17 +18843,26 @@ void Sema::DiagnoseSelfMove(const Expr *LHSExpr, const Expr *RHSExpr, LHSExpr = LHSExpr->IgnoreParenImpCasts(); RHSExpr = RHSExpr->IgnoreParenImpCasts(); - // Check for a call expression + // Check for a call expression or static_cast

[clang] [Clang][Docs] Simpler syntax for Github links. (PR #82746)

2024-02-23 Thread Timm Baeder via cfe-commits
tbaederr wrote: Love it, but I'm slightly worried about "Fixes #" vs. "see also #" etc. being the same now, since you removed the "Fixes" prefix. https://github.com/llvm/llvm-project/pull/82746 ___ cfe-commits mailing list

[clang] [Clang][Sema] Print more static_assert exprs (PR #74852)

2024-02-22 Thread Timm Baeder via cfe-commits
tbaederr wrote: Ping @cor3ntin @cjdb https://github.com/llvm/llvm-project/pull/74852 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang] Implement CWG2759 "`[[no_unique_address]` and common initial sequence" (PR #82607)

2024-02-22 Thread Timm Baeder via cfe-commits
@@ -19033,6 +19033,11 @@ static bool isLayoutCompatible(ASTContext , FieldDecl *Field1, return false; } + if (Field1->hasAttr() || + Field2->hasAttr()) { +return false; + } + tbaederr wrote: ```suggestion if (Field1->hasAttr() ||

[clang] fix: constexpr bit_cast with empty base classes (PR #82383)

2024-02-22 Thread Timm Baeder via cfe-commits
tbaederr wrote: > This will need a release note. I'm curious why the removed code was there in > the first place. Any idea @tbaederr ? No idea, it's been there since the original commit introducing `__builtin_bit_cast`. Maybe just an optimization, or maybe something else in that loop used to

[clang] [clang][Interp] Emit const references for Float arguments (PR #79753)

2024-02-21 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr closed https://github.com/llvm/llvm-project/pull/79753 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

  1   2   3   4   5   6   7   8   9   10   >