Hi Reinhard!

We should definitely look into these three problems within the next few
weeks, but I don't regard them as very critical, because they affect
only special use cases: Advice for user-defined "operator new"
implementations and the code generation for get/set advice, which is a
feature that is only enabled with --data_joinpoints and still a bit
experimental.

How to proceed? Can we/you live with these problems for now and update
later or is there no update option and we have to fix it sooner?

Cheers,

Olaf

On 08/24/2017 00:16, Reinhard Tartler wrote:
> 
> 
> On 08/23/2017 12:07 PM, Olaf Spinczyk wrote:
>> Hi!
>>
>> You can generate the config file easily with ag++ --gen_config. Sorry
>> for the inconvenience. The background is that when I wrote the first
>> ac++ tests, I did not want the makefile to depend on ag++.
>>
>> We should change that sooner or later, because it is obviously confusing.
> 
> Not a problem.
> 
> Progress! With a "correct" PUMA CONFIG, I now get further, but there seem to 
> be
> genuine test failures. Are they concerning or shall I ignore them for the 
> debian
> package?
> 
> They look like this:
> 
> /usr/bin/make -C tests -s  all
> make[2]: Entering directory
> '/build/aspectc++-rCVJRW/aspectc++-2.2+git20170823/AspectC++/tests'
> ...........................................[C:ExecAdviceNewDelete].................................................................................[D:Bug574].......[C:Bug598]........
> 
> 
> +---------+
> |ERRORS:  |
> +---------+
> 
> -----------------------------------------------------------------------------
> TEST: ExecAdviceNewDelete
> -----------------------------------------------------------------------------
> STDOUT:
> --------
> make[3]: Entering directory
> '/build/aspectc++-rCVJRW/aspectc++-2.2+git20170823/AspectC++/tests/ExecAdviceNewDelete'
> Weaving main.cc
> * Running ac++ 2.2
> * Handling Translation Unit `main.cc'.
>   - Path "main.cc"
>   - Parsing ...
>   - Weaving Aspects Forward Declarations ...
>   - Inserting namespace AC
>   - Committing
>   - Preparing introductions ...
>   - Parsing again ...
>   - Weaving access control bypass classes ...
>   - Weaving Join Points ...
>     Advicecode manipulation
>     Collecting Advice
>       Setting up thisJoinPoint for aspectof
>         Create pointcut expression tree
>     Matching joinpoints
>     Aspect ordering ...
>     Creating project repository 'repo.acp'
>     Type Check Functions
>     Access Join Points
>     Execution Join Points
>       void *operator new(unsigned long int)
>       void *operator new[](unsigned long int)
>       void operator delete(void *)
>       void operator delete[](void *)
>       void A::operator delete(void *)
>       void *C::operator new(unsigned long int)
>       void C::operator delete(void *)
>     Construction Join Points
>     Destruction Join Points
>   - Aspect Includes ...
>   - Final cleanup
>   - Committing
> * Inserting unit pro- and epilogues
>   - Manipulating translation unit file main.cc
> * Updating #line directives of generated code fragments
> * Saving
>   - Expanding project includes
>   - Fixing #line directives
>   - Path "main.acc"
> * Done
> Compiling main.acc
> ../Makefile.generic:80: recipe for target 'Junk/main.o' failed
> make[3]: Leaving directory
> '/build/aspectc++-rCVJRW/aspectc++-2.2+git20170823/AspectC++/tests/ExecAdviceNewDelete'
> 
> STDERR:
> --------
> main.cc:5:30: warning: dynamic exception specifications are deprecated in 
> C++11
> [-Wdeprecated]
>  void *operator new (size_t ) throw(std::bad_alloc);
>                               ^~~~~
> main.cc:7:31: warning: dynamic exception specifications are deprecated in 
> C++11
> [-Wdeprecated]
>  void *operator new (size_t s) throw(std::bad_alloc) {
>                                ^~~~~
> main.cc: In function 'void* operator new(size_t)':
> main.cc:7:7: error: declaration of 'void* operator new(size_t) throw
> (std::bad_alloc)' has a different exception specifier
>  void *operator new (size_t s) throw(std::bad_alloc) {
>        ^~~~~~~~
> main.cc:5:7: note: from previous declaration 'void* operator new(std::size_t)'
>  void *operator new (size_t ) throw(std::bad_alloc);
>        ^~~~~~~~
> main.acc: In function 'void* operator new(std::size_t)':
> main.acc:147:61: warning: dynamic exception specifications are deprecated in
> C++11 [-Wdeprecated]
>    typedef TJP__Znwm_0< void *, void, void, void *(::size_t)
> throw(std::bad_alloc),  AC::TL< ::size_t, AC::TLE > > __TJP;
>                                                              ^~~~~
> main.cc: At global scope:
> main.cc:11:33: warning: dynamic exception specifications are deprecated in 
> C++11
> [-Wdeprecated]
>  void *operator new[] (size_t s) throw(std::bad_alloc) {
>                                  ^~~~~
> main.acc: In function 'void* operator new [](std::size_t)':
> main.acc:198:61: warning: dynamic exception specifications are deprecated in
> C++11 [-Wdeprecated]
>    typedef TJP__Znam_0< void *, void, void, void *(::size_t)
> throw(std::bad_alloc),  AC::TL< ::size_t, AC::TLE > > __TJP;
>                                                              ^~~~~
> make[3]: *** [Junk/main.o] Error 1
> 
> 
> -----------------------------------------------------------------------------
> TEST: Bug574
> -----------------------------------------------------------------------------
> STDOUT:
> --------
> make[3]: Entering directory
> '/build/aspectc++-rCVJRW/aspectc++-2.2+git20170823/AspectC++/tests/Bug574'
> Weaving main.cc
> * Running ac++ 2.2
> * Handling Translation Unit `main.cc'.
>   - Path "main.cc"
>   - Parsing ...
>   - Weaving Aspects Forward Declarations ...
>   - Inserting namespace AC
>   - Committing
>   - Preparing introductions ...
>   - Parsing again ...
>   - Weaving access control bypass classes ...
>   - Weaving Join Points ...
>     Advicecode manipulation
>     Collecting Advice
>       Setting up thisJoinPoint for aspectof
>         Create pointcut expression tree
>     Matching joinpoints
>     Aspect ordering ...
>     Creating project repository 'repo.acp'
>     Type Check Functions
>     Access Join Points
>       Get: bool Cyg_SchedThread::priority_inherited
>       Get: int Cyg_SchedThread::original_priority
>     Execution Join Points
>     Construction Join Points
>     Destruction Join Points
>   - Aspect Includes ...
>   - Final cleanup
>   - Committing
> * Inserting unit pro- and epilogues
>   - Manipulating translation unit file main.cc
> * Updating #line directives of generated code fragments
> * Saving
>   - Expanding project includes
>   - Fixing #line directives
>   - Path "main.acc"
> * Done
> Compiling main.acc
> Linking
> make[3]: Leaving directory
> '/build/aspectc++-rCVJRW/aspectc++-2.2+git20170823/AspectC++/tests/Bug574'
> make[3]: Entering directory
> '/build/aspectc++-rCVJRW/aspectc++-2.2+git20170823/AspectC++/tests/Bug574'
> 1a2
>> int Cyg_SchedThread::original_priority
> ../Makefile.generic:48: recipe for target 'diff' failed
> make[3]: Leaving directory
> '/build/aspectc++-rCVJRW/aspectc++-2.2+git20170823/AspectC++/tests/Bug574'
> 
> STDERR:
> --------
> make[3]: *** [diff] Error 1
> 
> 
> -----------------------------------------------------------------------------
> TEST: Bug598
> -----------------------------------------------------------------------------
> STDOUT:
> --------
> make[3]: Entering directory
> '/build/aspectc++-rCVJRW/aspectc++-2.2+git20170823/AspectC++/tests/Bug598'
> Weaving main.cc
> * Running ac++ 2.2
> * Handling Translation Unit `main.cc'.
>   - Path "main.cc"
>   - Parsing ...
>   - Weaving Aspects Forward Declarations ...
>   - Inserting namespace AC
>   - Committing
>   - Preparing introductions ...
>   - Parsing again ...
>   - Weaving access control bypass classes ...
>   - Weaving Join Points ...
>     Advicecode manipulation
>     Collecting Advice
>       Setting up thisJoinPoint for aspectof
>         Create pointcut expression tree
>     Matching joinpoints
>     Aspect ordering ...
>     Creating project repository 'repo.acp'
>     Type Check Functions
>     Access Join Points
>       Get: char const arr[2]
>     Execution Join Points
>     Construction Join Points
>     Destruction Join Points
>   - Aspect Includes ...
>   - Final cleanup
>   - Committing
> * Inserting unit pro- and epilogues
>   - Manipulating translation unit file main.cc
> * Updating #line directives of generated code fragments
> * Saving
>   - Expanding project includes
>   - Fixing #line directives
>   - Path "main.acc"
> * Done
> Compiling main.acc
> ../Makefile.generic:80: recipe for target 'Junk/main.o' failed
> make[3]: Leaving directory
> '/build/aspectc++-rCVJRW/aspectc++-2.2+git20170823/AspectC++/tests/Bug598'
> 
> STDERR:
> --------
> main.acc: In instantiation of 'TResult __Get__Z4mainv_1_0(TEntity&, AC::RT<T>)
> [with TResult = char; TEntity = const char]':
> main.cc:16:66:   required from here
> main.acc:283:17: error: uninitialized const '__result_buffer' [-fpermissive]
>    const TResult __result_buffer;
>                  ^~~~~~~~~~~~~~~
> main.acc:285:19: error: assignment of read-only variable '__result_buffer'
>    __result_buffer = ::arr;
>    ~~~~~~~~~~~~~~~~^~~~
> main.acc:285:19: error: invalid conversion from 'const char*' to 'char'
> [-fpermissive]
> make[3]: *** [Junk/main.o] Error 1
> 
> Makefile:161: recipe for target 'all' failed
> make[2]: *** [all] Error 1
> make[2]: Leaving directory
> '/build/aspectc++-rCVJRW/aspectc++-2.2+git20170823/AspectC++/tests'
> Makefile:259: recipe for target 'testall' failed
> make[1]: *** [testall] Error 2
> make[1]: Leaving directory
> '/build/aspectc++-rCVJRW/aspectc++-2.2+git20170823/AspectC++'
> debian/rules:52: recipe for target 'test-builds' failed
> 

Reply via email to