[committed] Fix compilation error in 2 1_neg.cc tests

François Dumont frs.dumont@gmail.com
Thu Aug 1 16:57:00 GMT 2024


     libstdc++: Make dg-error pattern more accurate

     Remove useless test variable and use a more accurate dg-error 
pattern so
     that only the ill-formed expression compilation error is considered.

     libstdc++-v3/ChangeLog:

             * testsuite/23_containers/map/operators/1_neg.cc (test01): 
Remove test variable
             and use 'no match' dg-error patter.
             * testsuite/23_containers/set/operators/1_neg.cc (test01): 
Likewise.

Comitted with you as author.

François


On 01/08/2024 09:26, Jonathan Wakely wrote:
> On Thu, 1 Aug 2024 at 06:09, François Dumont <frs.dumont@gmail.com> wrote:
>> Do you want me to take care of those 2 tests ?
> Yes please.
>
>> You seem to have started something on the review of dg-error patterns in
>> use.
>>
>> Here I kept the test variable because I fear to potentially have a
>> diagnostic about unused returned value.
> I thought about that too, but you can't have an unused return value
> from a function that doesn't compile. There's no return value, because
> itr != mapByName.end() doesn't compile, so there's no function that
> gets called, so no return type.
>
Except in case of regression that would make the expression well-formed 
and then produce another compilation error. But with your modification 
of the dg-error pattern this cannot happen anymore so all good.

-------------- next part --------------
diff --git a/libstdc++-v3/testsuite/23_containers/map/operators/1_neg.cc b/libstdc++-v3/testsuite/23_containers/map/operators/1_neg.cc
index 0eb1eee640b..6ce7b3249d8 100644
--- a/libstdc++-v3/testsuite/23_containers/map/operators/1_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/map/operators/1_neg.cc
@@ -35,6 +35,6 @@ void test01()
   std::map<unsigned, int>::iterator itr(mapByIndex.begin());
 
   // NB: notice, it's not mapByIndex!!
-  bool __attribute__((unused)) test = itr != mapByName.end(); // { dg-error "no" }
-  test &= itr == mapByName.end(); // { dg-error "no" }
+  itr != mapByName.end(); // { dg-error "no match" }
+  itr == mapByName.end(); // { dg-error "no match" }
 }
diff --git a/libstdc++-v3/testsuite/23_containers/set/operators/1_neg.cc b/libstdc++-v3/testsuite/23_containers/set/operators/1_neg.cc
index 28d08f308e1..b5f69ae920c 100644
--- a/libstdc++-v3/testsuite/23_containers/set/operators/1_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/set/operators/1_neg.cc
@@ -32,6 +32,6 @@ void test01()
   std::set<unsigned int>::iterator itr(setByIndex.begin());
 
   // NB: it's not setByIndex!!
-  bool __attribute__((unused)) test = itr != setByName.end(); // { dg-error "no" }
-  test &= itr == setByName.end(); // { dg-error "no" }
+  itr != setByName.end(); // { dg-error "no match" }
+  itr == setByName.end(); // { dg-error "no match" }
 }


More information about the Libstdc++ mailing list